7

これは見た目より難しいようです、または私はそれを間違っています。フラグメント内のUI要素のコンテンツを更新する必要があります。

だから、内で、私はこのようなタスクActivityを開始しますAsyncTask

new MyAsyncTask().execute();

「通常の」内部では、Activityこの非同期クラスはフラグメントクラス内に作成して、親クラスから呼び出すことができるとprivate思いました。このようなもの:publicFragmentActivity

MyFragment myFragment = (MyFragment) getSupportFragmentManager().findFragmentById(R.layout.my_fragment);
new myFragment.DoParsingAsyncTask().execute(""); //??? a silly guess

これは機能しませんでした

誰か助けてもらえますか?

PS。私のフラグメントは<fragment>XMLのビューではありませんが、を介して処理しますViewPager。を介してページを表示するのに問題はありませんViewPager
PPS。この非同期クラスは、リモートコンテンツの解析を開始し、フラグメント内のUI要素を埋めます。

4

1 に答える 1

10

問題が解決しない可能性がありますが、フラグメントにメソッドを作成し、それを呼び出して非同期タスクを作成および開始します。それはちょうどよりきれいになります。これがコードです。

このFragmentようにメソッドを呼び出します。

Activity myActivity = getActivity();
if (myActivity instanceof MyActivity) {
     ((MyActivity) myActivity).doAsyncTaskMethod();
}

または、私がすでに提案した解決策を試すことができます。

MyFragment myFragment = (MyFragment) getSupportFragmentManager().findFragmentById(R.layout.my_fragment);
myFragment.new DoParsingAsyncTask().execute("");

これも同様に機能します。

于 2012-12-19T16:28:32.080 に答える