gpt4 book ai didi

java - 如何从内部 AsyncTask 访问 fragment

转载 作者:太空狗 更新时间:2023-10-29 15:41:11 25 4
gpt4 key购买 nike

我有一个 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);
}

我不明白我怎么能:

  1. onPreExecute() 方法访问 FragmentActivity 以获取在 Fragment Activity
  2. onPostExecute() 触发 renderText() 方法定义在 TextReaderFragment 中?

最佳答案

逐点回答:

  • Fragment 可以作为 TextReaderFragment.this 访问。
  • Activity 可以作为 (MyActivity)getActivity() 访问。
  • renderText() 可以使用 TextReaderFragment.this.renderText() 调用。

关于java - 如何从内部 AsyncTask 访问 fragment ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30242656/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com