Java 需要有关带有继承的活动的选项卡的帮助吗

Java 需要有关带有继承的活动的选项卡的帮助吗,java,android,inheritance,Java,Android,Inheritance,我正在做一个Android项目。在我的应用程序中,我有3个选项卡。由于我使用的活动有许多共同点,例如ListView,因此我使用继承,如下所示: 列表a由我的SAXHandler生成,它在startDocument中创建一个新列表 我有一个testcase,其中a_活动中的列表有7项,B_活动中有3项。当我的应用程序启动时,我可以毫无问题地单击活动中显示的所有项目。单击B_活动并切换回A_活动后,单击前3项也没有任何问题;但是,如果我点击第四项,我会得到 java.lang.IndexOutOf

我正在做一个Android项目。在我的应用程序中,我有3个选项卡。由于我使用的活动有许多共同点,例如ListView,因此我使用继承,如下所示:

列表a由我的SAXHandler生成,它在startDocument中创建一个新列表

我有一个testcase,其中a_活动中的列表有7项,B_活动中有3项。当我的应用程序启动时,我可以毫无问题地单击活动中显示的所有项目。单击B_活动并切换回A_活动后,单击前3项也没有任何问题;但是,如果我点击第四项,我会得到

java.lang.IndexOutOfBoundsException: Invalid index 3, size is 3
如果我将B_活动中的项目数增加到4,我会得到相同的异常,3被4替换。因此,我确信其原因是,当我从B_活动跳回A_活动时,A_活动中的列表仍然是指B_活动


非常感谢你的建议。谢谢大家!

您可以做一件简单的事情,只需清除适配器数据,并在每次切换活动时调用适配器类的notifyDataSetChanged。

选项卡以0开头。所以从0开始

tabhost.setCurrentTab0

1表示->0 2意味着->1
依此类推

如何将MyActivity的实例创建到另一个Activity感谢Pratik。我想你的意思是怎么样。这将是我最后的选择。谢谢!这个技巧对我的另一项任务很有用。现在我的首要任务是找出为什么在运行测试用例之后,a_活动中的a被更改为C_活动中的a。我基于SimpleAdapter编写了自己的适配器,该列表被声明为私有列表非静态。