我有一个静态类,它扩展了 android.app.Application ( HireApplication ),它正在做很多我的后台工作。我在这里创建 AsyncTasks,我存储了我的应用程序使用的最大数据对象。我在 Application 类中编写此代码,以便我可以在电话和平板电脑的单独活动之间重用它。
这感觉像是布局我的应用程序的正确方法,但现在我遇到了问题。AsyncTask 已完成,需要在 Fragment ( ListFragment ) 内的 ArrayAdapter 上运行 notifyDataSetChanged。
这是我的解决方案:
列表片段:
public void onCreate (Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
myListAdapter = new MyListAdapter(getActivity(), HireApplication.myList);
HireApplication.myListAdapter = myListAdapter; // Tell the application where the ListView is so that it can notifyDataSetChanged
}
招聘申请:
public static ArrayAdapter<BikeStation> stationListAdapter = null;
private static void asyncTaskCompleteCallback() {
{...}
myListAdapter.notifyDataSetChanged();
}
现在,这行得通……但感觉不对。我正在向应用程序提供对 UI 元素的引用,这听起来有点紧密耦合,但我不知道有更好的方法来做到这一点。
有没有更好的方法让我的应用程序通知我的 ArrayAdapter 或 Fragment 它应该采取一些措施来使用新数据更新 UI?
干杯。