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