我有一个 Fragment
和加载文本的内部 AsyncTask
:
public class TextReaderFragment extends Fragment {
LoadTextTask task = null;
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
setRetainInstance(true);
task=new LoadTextTask();
task.execute();
...
}
public void renderText() {
...
}
class LoadTextTask extends AsyncTask<Integer, Void, Boolean> {
@Override
protected void onPreExecute() {
// how to access Fragment or Activity here?
ProgressBar loader = (ProgressBar) findViewById(R.id.textLoadingProgressBar);
loader.setVisibility(TextView.VISIBLE);
}
@Override
protected void onPostExecute(Boolean loaded) {
// how to trigger renderText method defined on TextReaderFragment?
loader.setVisibility(TextView.GONE);
}
我不明白我怎么能:
- 从
onPreExecute()
方法访问Fragment
或Activity
以获取在Fragment
或Activity
- 从
onPostExecute()
触发renderText()
方法定义在TextReaderFragment
中?
最佳答案
逐点回答:
Fragment
可以作为TextReaderFragment.this
访问。Activity
可以作为(MyActivity)getActivity()
访问。renderText()
可以使用TextReaderFragment.this.renderText()
调用。
关于java - 如何从内部 AsyncTask 访问 fragment ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30242656/