2011-04-03 82 views
0

我在我的应用程序中的所有活动中都有相同的事情,例如,一个选项菜单和一些需要运行onresume,onrestart和onpause的代码。我想这将是一个聪明的方法,把他们放在我的类MyListActivity扩展ListActivity,然后让我的所有活动扩展MyListActivity。android:自己的类扩展活动和/或列表活动

直到我创建了一个没有ListView的活动时,这项工作才算正常。该应用程序崩溃,因为ListActivity期望一个ListView。但是,这个新的活动不需要ListView,但仍然需要MyListActivity中的所有函数/覆盖。

现在我可以想到两个解决方案。一:在可见性= false的情况下向布局添加一个虚拟列表视图,高度为& width = 0(没有尝试过这个,但我猜它应该可以工作)。和二:将MyListActivity类的内容复制/粘贴到MyActivity extends Activity类中。我觉得这样做很愚蠢,但我对如何解决这个问题没有任何其他想法。

关于如何处理这个更好的任何想法?

感谢

回答

0

我想你可以实现在Activity子类的所有功能(例如,MyActivity),使MyListActivityMyActivity类的子类。

其他方法是创建一个辅助类,它包含静态方法中的所有特征,其中第一个参数为Activity对象。在这种情况下,您不需要创建MyActivityMyListActivity类,但是您需要调用每个想要继承这些功能的Activity子类中的帮助程序类的方法。

+0

对,这些辅助类在android中非常有用,因为您必须在多个活动中执行相同的任务 – 2011-04-03 20:01:17

+0

我看不到您的第一个解决方案正常工作。如果我有MyActivity扩展了Activity,然后MyListActivity扩展了Activity,我没有在MyListActivity中继承的实际ListActivity。我尝试过帮助班,但也不是很整洁。例如。如果我想使用它的任何函数,我必须通过我的Application类。但它可能是唯一的方法... – final 2011-04-04 19:31:56

+0

在第一个解决方案中,您需要从MyActivity继承MyListActivity,将所有功能从ListActivity类添加到MyListActivity。我很确定'ListActicity'很简单。我没有得到关于'应用程序'的想法。你能更精确地解释一下吗? – Michael 2011-04-05 11:30:40