更新ListView的最佳实践

3
我正在做的事情:
我正在开发一款应用程序,其中有一个可点击的主题列表,用户可以系统地添加。 在学期结束时,用户会清除列表以进行下一步操作,并删除保存用户值的所有文件。
问题是:
使用以下方式刷新我正在工作的活动是否更好:
finish();
startActivity(getIntent());

或通过重新初始化ArrayAdapter(名为listAdapter)并使用以下方法重置它来清除列表:

listAdapter = new ArrayAdapter<String>(this, R.layout.simplerow, R.id.rowTextView);
testListView.setAdapter(listAdapter);

还是有更好的方法吗?

ArrayAdapter构造函数需要一个额外的参数,即Arraylist。您可以修改该数据并使用下面提到的notify方法。 - OneCricketeer
2个回答

3

修改数组的值并调用adapter.notifyDataSetChanged();


1
通常来说,关闭一个Activity被认为是不好的实践。在Android上,Activity会占用较多资源,现代应用程序甚至不使用多个Activity。
如果您想要替换整个内容或其中的部分,您可能需要考虑使用Fragment。Fragment是UI的一部分,可以独立于Activity工作。在此处阅读更多关于Fragments的信息:https://developer.android.com/guide/components/fragments.html 如果UI保持不变,而您只是想使用一个新的ArrayAdapter,那么您的方法应该可行。如果它所表示的数据发生变化,甚至更好的方法是修改现有的Adapter。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接