【发布时间】:2014-07-16 17:08:56
【问题描述】:
我有一个使用 HttpGet 从远程服务器获取内容的 AsyncTask。我已经测试过,这工作正常,现在我想用这个 AsyncTask 的结果更新一个 TextView。这是我所做的。
从 Fragment 的 OnCreateView 中,我获得了对 Button 和 TextView 的引用,我最初隐藏了 TextView,然后在 OnClickListener 中为我想要取消隐藏 textview 并使用 AsyncTask 的结果更新该 textview 的按钮
View rootView = inflater.inflate(R.layout.fragment_programs_list, container, false);
Button btnLoadPrograms = (Button) rootView.findViewById(R.id.btnLoadPrograms);
TextView tvShowPrograms = (TextView) rootView.findViewById(R.id.tvRestCall);
tvShowPrograms.setVisibility(View.GONE);
btnLoadPrograms.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
startNewAsyncTask();
}
});
return rootView;
现在在AsyncTask的onPostExecute中,我要更新Textview
@Override
protected void onPostExecute(String result) {
super.onPostExecute(result);
getView().findViewById(R.id.tvRestCall).setVisibility(View.SHOW); //Does not exit
}
如何从 Fragment 的 AsyncTask 中获取对 TextView 的引用,然后使用 doinbackground 的结果更新该 TextView。
【问题讨论】:
-
您可以将文本视图引用传递给 startNewAsyncTask(),然后将其传递给构造函数中的实际 AsyncTask 并在 onPostExecute 中使用它
标签: android android-fragments android-asynctask