我正在创建一个Cash Sales应用程序,我将在其中实现4个标签。从第一个选项卡用户将从客户列表中选择客户,第二个选项卡从项目列表中选择项目,第三个选项卡在7 EditText
和第4个中设置付款详细信息以查看草稿并确认保存在SQLite中。我有几个问题:
对于标签,我应该首先通过扩展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);
}
}
我应该为CustomerSelect
,ItemSelect
等每项活动创建不同的课程吗?如果需要创建不同的类,是应该从Fragment
类还是FragmentActivity
类扩展?
当用户从第一个标签转到第二个标签时,如何记忆数据?我应该使用Session并最终将数据从会话保存到数据库吗?
伙计我是Android新手。请帮助我或发送任何样本链接。
答案 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;
}
我希望这会有所帮助。