我想刷新List
的{{1}}。因此,我在ListFragment
:
ListFragment
在我的public void setAdapter(List<String> valueList) {
ArrayAdapter adapter = new ArrayAdapter<String>(ctx, android.R.layout.simple_list_item_1, valueList);
setListAdapter(adapter);
adapter.notifyDataSetChanged();
}
我有Activity
我在AsyncTask
中调用上述方法:
onPostExecute
一切都应该运转正常。 @Override
protected void onPostExecute(ArrayList<String> valueList) {
OtherClass otherClasst = new OtherClass();
otherclass.setAdapter(valueList);
}
不是空的或类似的东西,valueList
也会被调用。
所以现在我的问题是,如果我在onPostExecute
的{{1}}方法中初始化Context ctx
,我会得到onCreate
。当我使用ListFragment
在我的NullPointerException
方法中对其进行初始化时,我得到了同样的错误。我唯一能做的就是用setAdapter
获取类的ctx = getActivity
,但是应用程序中没有显示任何内容。
那么我该如何让它发挥作用呢?
答案 0 :(得分:1)
由于您从setAdapter
的{{1}}致电onPostExecute
,因此您的AsyncTask
可能已被销毁,可能就是您获得{{1}的原因通过调用activity
来创建上下文。
在null
之外初始化getActivity
(将其设为全局),可能采用此adapter
的{{1}}方法:
setAdapter
onCreateView
的{{1}}只更新Fragment
并致电adapter = new ArrayAdapter<String>(getActivity(), android.R.layout.simple_list_item_1, valueList);