【问题标题】:How to "execute" onCreate method when activity in tabLayout is selected?选择 tabLayout 中的活动时如何“执行”onCreate 方法?
【发布时间】:2013-08-09 07:39:40
【问题描述】:

我在选项卡布局中有两个活动。在第一个活动中,我将元素添加到列表视图中,在第二个活动中,将显示列表视图。所以问题是,在我在第一个活动中将元素添加到列表视图之后,在我重新启动整个应用程序之前,在第二个活动中看不到列表视图。

我猜这是因为我在 onCreate 方法内创建 listview,并且 onCreate 方法仅在活动完全销毁并重新创建时执行。但由于这是一个 tabLayout,所以在我开始向 listView 添加元素之前就已经执行了 onCreate。

所以我的问题是:如何让活动在每次在 tabLayout 中单击时执行 onCreate?或者可能有另一种方法,将 listView 放在 onCreate 之外并使其刷新或其他什么?

这是 onCreate 里面的代码,如果有帮助的话:

listView = (ListView) findViewById (R.id.mainListView);
listAdapter = new ArrayAdapter<String>(this, R.layout.simplerow, recordedFilesArray);
listView.setEmptyView(findViewById(R.id.emptyListView));
listView.setAdapter(listAdapter);

一切都很完美,除了我需要重新启动应用程序才能更新列表视图。

【问题讨论】:

  • “我在选项卡布局中有两个活动”——这已被弃用约 2.5 年。请考虑使用现代替代品,例如 FragmentTabHostViewPager 和选项卡式指示器或操作栏选项卡。
  • @CommonsWare 我大约 2-3 个月前才开始进行 android/java 编程。所以我真的不知道更好。您能否为我提供一些其他选项的新手友好教程?我会自己用谷歌搜索它们,但既然你已经提到过,我只是问一下:)
  • FragmentTabHost 有一个完整的样本 in its JavaDocs。操作栏选项卡覆盖in the documentationthe use of ViewPager 也是如此。我确信在操作栏选项卡和ViewPager 选项上有独立的教程,它们也包含在书籍中。 FragmentTabHost 可能是这 3 个中最不受欢迎的,尽管它最接近您当前的代码。
  • @CommonsWare 谢谢你的帮助,我会检查一下:)
  • @CommonsWare 我采纳了您的建议并开始实施 FragmentTabHost,但遇到了一些困难。我打开了一个新问题,因为我被卡住了。我希望我没有要求太多。 this is the question

标签: java android eclipse android-listview oncreate


【解决方案1】:

现在有人给了我一个更好的解决方案(检查 cmets),但我仍然会回答我自己的问题。我做了更多的研究,发现了一些东西。

这很简单。为选项卡创建 Intent 时,只需添加 FLAG_ACTIVITY_CLEAR_TOP 即可。

像这样:

Intent libraryIntent = new Intent(this, RecordedLibrary.class);
libraryIntent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);

【讨论】:

    猜你喜欢
    • 2020-07-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多