0

asynctaskクラスのフラグメントonPostExecuteメソッドを置き換えようとしていますが、何も置き換えられません。これは私のタブリスナークラスです:

public class TabListener implements ActionBar.TabListener
{
    protected ParentActivity parent;
    public FragmentTransaction fragmentTransaction;
    public ItemData item = new ItemData();

    public TabListener(ParentActivity parent)
    {
        this.parent = parent;
    }

    @Override
    public void onTabSelected(Tab tab, FragmentTransaction ft) {

        this.fragmentTransaction = ft;

        if(this.parent.isNetworkAvailable())
        {
            //ft.replace(android.R.id.content, new LoadingFragment());

            if(tab.getPosition() == 0)
            {
                new HttpData().execute(ParentActivity.centroUri);

            }
            else
            {
                new HttpData().execute(ParentActivity.nvomxliUri);
            }
        }
        else
        {
            ft.replace(android.R.id.content, new NetworkFragment());
        }

    }

    @Override
    public void onTabUnselected(Tab tab, FragmentTransaction ft) {
        // TODO Auto-generated method stub

    }

    @Override
    public void onTabReselected(Tab tab, FragmentTransaction ft) {
        // TODO Auto-generated method stub

    }


    private class HttpData extends AsyncTask<String, Void, String> {

        @Override
        protected String doInBackground(String... urls) {
            Parser p = new Parser();
            p.run(urls[0], item);
            return "";
        }

        @Override
        protected void onPostExecute(String result) {
            fragmentTransaction.replace(android.R.id.content, new LaneFragment(item));
        }

    }
}

onPostExecuteメソッドが実行され、必要なデータが期待どおりに取得されることを確認しました。

ご協力いただきありがとうございます。

4

1 に答える 1

0

PostExecuteで新しいフラグメントトランザクションを作成しようとしましたか?onTabSelectedが送信しているのと同じトランザクションを使用していますが、そのメソッドが終了するとトランザクションがコミットされると思います。

    FragmentTransaction fragmentTransaction = mFragmentMgr.beginTransaction();

    // Add fragment to the container ContentView 
    fragmentTransaction.replace(R.id.fragment, tag);

    fragmentTransaction.addToBackStack(null);

    // Commit transaction
    fragmentTransaction.commit();
于 2013-01-10T20:29:41.680 に答える