这看起来比它看起来更难,或者我做错了。我需要更新片段中UI元素的内容。
因此,在Activity
内,我开始AsyncTask
这样的任务
new MyAsyncTask().execute();
在“普通”Activity
内部,这个异步类是private
所以我认为我可以在片段类中创建它public
然后能够从{{1}调用它父类。像这样:
FragmentActivity
无效。
有人可以帮忙吗?
PS。我的片段在XML中不是MyFragment myFragment = (MyFragment) getSupportFragmentManager().findFragmentById(R.layout.my_fragment);
new myFragment.DoParsingAsyncTask().execute(""); //??? a silly guess
个视图,但我通过<fragment>
处理它们。我通过ViewPager
显示页面没有问题
PPS。此异步类开始解析远程内容并填充片段中的UI元素。
答案 0 :(得分:9)
它可能无法解决问题,但在片段中创建一个方法并调用它来创建和启动异步任务。它会更整洁。这是代码。
从Fragment
调用这样的方法。
Activity myActivity = getActivity();
if (myActivity instanceof MyActivity) {
((MyActivity) myActivity).doAsyncTaskMethod();
}
或者您可以尝试我已经提出的解决方案。
MyFragment myFragment = (MyFragment) getSupportFragmentManager().findFragmentById(R.layout.my_fragment);
myFragment.new DoParsingAsyncTask().execute("");
哪个也有效。