2013-02-26 44 views
0

我正在创建一个现金销售应用程序,我将在其中实施4个选项卡。从第一个选项卡中,用户将从客户列表中选择客户,第二个选项卡从项目列表中选择项目,第三个选项卡在7 EditText的第4个选项卡中设置付款细节,第4个选项查看草稿并确认保存在SQLite中。我有这几个问题:如何处理多个选项卡,EditText并保存到数据库?

  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并最终将会话中的数据保存到数据库吗?

我是Android新手。请帮助我或发送任何示例链接。

回答

1

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

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

您应该创建一个扩展FragmentActivity的类。而是使用标签我用ViewPager和custome FragmentPagerAdapter持有的四个不同Fragnment(你的情况CustomerSelect,ItemSelect等)和刷卡您可以在您的片段Bundle保存数据,然后从FragmentActivity调用public方法来获取Bundlefragment

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

是的,你应该反对。

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?

如上面描述的,你可以保存在包对象的数据,然后在你的FragmentActivity,你可以叫你保存方法onPageSelected方法等。

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你,你从不同的片段,让您在主FragmentActivity像

public Bundle getFirstFragmentData() { 
    return firstFragmentData; 
} 

现在在你的任何片段,你可以得到任何这样的碎片数据的所有包对象..

Bundle firstFragmentData = ((MainFragmentActivity) getActivity()) 
         .getFirstFragmentData(); // here you got the bundle 

我希望这有助于。

相关问题