如何处理多个标签,EditText并保存到数据库?

时间:2013-02-26 09:09:39

标签: android sqlite android-fragments

我正在创建一个Cash Sales应用程序,我将在其中实现4个标签。从第一个选项卡用户将从客户列表中选择客户,第二个选项卡从项目列表中选择项目,第三个选项卡在7 EditText和第4个中设置付款详细信息以查看草稿并确认保存在SQLite中。我有几个问题:

  1. 对于标签,我应该首先通过扩展FragmentActivity来创建标签容器,如下所示:

    public class CashSales extends FragmentActivity {
    
        private FragmentTabHost mTabHost;
    
        @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
    
            setContentView(R.layout.cash_sales_tab);
            mTabHost = (FragmentTabHost) findViewById(android.R.id.tabhost);
            mTabHost.setup(this, getSupportFragmentManager(), R.id.realtabcontent);
    
            mTabHost.addTab(mTabHost.newTabSpec("customer").setIndicator("customer"),
                    CustomerSelect.class, null);
            mTabHost.addTab(mTabHost.newTabSpec("item").setIndicator("item"),
                    ItemSelect.class, null);
            mTabHost.addTab(mTabHost.newTabSpec("payment").setIndicator("payment"),
                    SetPayment.class, null);
            mTabHost.addTab(mTabHost.newTabSpec("payment").setIndicator("payment"),
                    DraftViewAndSave.class, null);
        }
    }
    
  2. 我应该为CustomerSelectItemSelect等每项活动创建不同的课程吗?如果需要创建不同的类,是应该从Fragment类还是FragmentActivity类扩展?

  3. 当用户从第一个标签转到第二​​个标签时,如何记忆数据?我应该使用Session并最终将数据从会话保存到数据库吗?

  4. 伙计我是Android新手。请帮助我或发送任何样本链接。

1 个答案:

答案 0 :(得分:1)

我实施了同样的事情,所以我分享了我的想法。

For tab, should I create a tab container first by extending FragmentActivity

您应该创建一个扩展FragmentActivity的类。但是使用标签我使用ViewPager和自己FragmentPagerAdapter来保存您的四个Fragnment(在您的情况下为CustomerSelect,ItemSelect等)并在滑动时您可以将数据保存在{{1}在您的片段中,然后从FragmentActivity调用Bundle方法从public类中获取Bundle对象

fragment

是的,你应该。

Should I create different classes for each of the activities like CustomerSelect, ItemSelect etc?

如上所述,您可以将数据保存在bundle对象中,然后在FragmentActivity中,您可以使用How can I memorize the data when user will go from 1st tab to 2nd tab? Should I use Session and finally save data from session to database?方法调用save方法。

onPageSelected

实际上你需要为你的主要FragmentActivity中不同片段的所有束对象设置private Bundle firstFragmentData; mPager.setOnPageChangeListener(new OnPageChangeListener() { @Override public void onPageSelected(int arg0) { switch (arg0) { case 1: fragment1 = (MyFirstFragment) getSupportFragmentManager() .findFragmentByTag( "android:switcher:" + R.id.pager + ":" + (arg0 - 1)); firstFragmentData = fragment1.SaveDatainFragment1(); break; ,如

getters

现在在你的任何片段中你可以得到像这样的任何片段数据..

public Bundle getFirstFragmentData() {
     return firstFragmentData;  
 }

我希望这会有所帮助。