0

グリッドに表示されるアイテムのリストを表示しており、データは webservice から来ています。そして、アイテムをクリックすると新しい画面が表示されますが、この画面からグリッドを持つ画面に移動すると、レイアウトが再作成されますが、画面が再度作成されないようにアクティビティのようなインスタンスを保存したいと思います。これを達成するために何ができますか?

public void onActivityCreated(Bundle savedInstanceState) {
            super.onActivityCreated(savedInstanceState);
            mfragmentManager = getActivity().getSupportFragmentManager();
                mhandler=new Handler(this);
            mLvAllDeals = (GridView) mview.findViewById(R.id.xLvAllDeals);
            mLvAllDeals.setCacheColorHint(0);
            mLvAllDeals.setOnItemClickListener(this);

                    new MyDealsAsyncTask().execute();
    }

    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
                mAlDealName = new ArrayList<AllDealsData>();
    }


    public void onItemClick(AdapterView<?> arg0, View arg1, int arg2, long arg3) {
         if(arg0==mLvAllDeals)
{
             position = arg2;

                        AllDealsData bean;

                            bean = mAlDealName.get(position);

                            Fragment frag = getFragmentManager().findFragmentById(R.id.inner_content2);
                            FragmentTransaction ft = getFragmentManager().beginTransaction();
                            ft.setCustomAnimations(R.anim.slide_in_right, R.anim.slide_out_left, R.anim.slide_in_left, R.anim.slide_out_right);
                            if (!frag.getTag().equals("dealsinfo")) 
                            {
                                Bundle args = new Bundle();
                                args.putString("dealid", bean.getId());
                                mdealinfo.setArguments(args);
                                ft.replace(R.id.inner_content2, mdealinfo, "dealsinfo");
                                ft.setTransition(FragmentTransaction.TRANSIT_FRAGMENT_OPEN);
                                ft.addToBackStack(null);
                                ft.commit();
                            }


        }
}
        }
4

1 に答える 1

0

フラグメントでトランザクションを実行するonCreateView()と、再度呼び出されますが、メソッドonActvityCreated()は呼び出されません。onCreate()したがって、onCreate()メソッドでデータを維持します。データが既にロードされている場合は、アダプターに直接設定し、webservices データをロードして、追加のフラグを使用してデータを管理します。

フラグメントのライフサイクルの詳細については、このリンクを参照してください

于 2013-04-15T09:17:58.080 に答える