Android碎片标签抛出错误
我正在尝试为2个选项卡创建2个不同的活动。但在启动活动期间抛出错误。这是我的密码:Android碎片标签抛出错误,android,android-fragments,Android,Android Fragments,我正在尝试为2个选项卡创建2个不同的活动。但在启动活动期间抛出错误。这是我的密码: public class CashSales extends FragmentActivity { private FragmentTabHost mTabHost; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState);
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("simple").setIndicator("Simple"),
CustomerAddActivity.class, null);
mTabHost.addTab(mTabHost.newTabSpec("contacts").setIndicator("Contacts"),
ItemAddActivity.class, null);
}
}
这是我的活动,将出现在一个选项卡中
public class CustomerAddActivity extends FragmentActivity {
private EditText mName;
private EditText mEmail1;
private Integer mPkid;
@Override
protected void onCreate(Bundle bundle) {
super.onCreate(bundle);
setContentView(R.layout.activity_customer_add);
mName = (EditText) findViewById(R.id.customer_add_name);
mEmail1 = (EditText) findViewById(R.id.customer_add_email1);
Button confirmButton = (Button) findViewById(R.id.customer_add_button);
'''''''''''''''''''''''''''
}
}
CatLog:
02-26 05:52:39.732: E/AndroidRuntime(25579): FATAL EXCEPTION: main
02-26 05:52:39.732: E/AndroidRuntime(25579): java.lang.ClassCastException: asia.wavelet.android.customer.CustomerAddActivity cannot be cast to android.support.v4.app.Fragment
02-26 05:52:39.732: E/AndroidRuntime(25579): at android.support.v4.app.Fragment.instantiate(Fragment.java:394)
02-26 05:52:39.732: E/AndroidRuntime(25579): at android.support.v4.app.FragmentTabHost.doTabChanged(FragmentTabHost.java:339)
02-26 05:52:39.732: E/AndroidRuntime(25579): at android.support.v4.app.FragmentTabHost.onAttachedToWindow(FragmentTabHost.java:276)
您在这里为
addTab
方法提供了一个活动,而不是一个片段:
mTabHost.addTab(mTabHost.newTabSpec("simple").setIndicator("Simple"),
CustomerAddActivity.class, null);
mTabHost.addTab(mTabHost.newTabSpec("contacts").setIndicator("Contacts"),
ItemAddActivity.class, null);
这就是为什么系统试图将活动强制转换为片段,并抛出
ClassCastException
您应该扩展片段,而不是片段活动
像这样
public class CustomerAddActivity extends Fragment
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
return inflater.inflate(R.layout.activity_customer_add, container, false);
}
您是否尝试过
getFragmentManager()
而不是getSupportFragmentManager()
?实际上,我正在创建一个POS应用程序,其中第一个选项卡将是select customer。第二个选择项目,第三个设置付款。在第四个选项卡中将有一个预览和保存选项。通过单击“保存”选项,它将保存在数据库中。那么我应该只创建一个FragementActivity来保存所有选项卡吗?我是否需要在会话中保存每个选项卡的数据,直到“获取最终保存”按钮?只有扩展片段才能解决这些问题?