片段上的setRetainInstance将列表视图项目加倍

时间:2013-11-15 11:16:20

标签: java android android-fragments

在屏幕旋转之后,片段被平滑地保留但问题是,我的listView上生成项目的代码再次被调用,这使得前一个列表使用相同的项目加倍。

我做了什么,我尝试检查retainInstancetrue,然后我会返回视图。然后我得到 11-15 19:18:52.097: E/AndroidRuntime(1620): java.lang.StackOverflowError

    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container, 
                                    Bundle savedInstanceState) {

        if(this.getRetainInstance()){

            return this.onCreateView(inflater, container, savedInstanceState);

        }else{
        this.setRetainInstance(true);

         /** CODE FOR GENERATING LISTVIEW **/

         return view;

        }

更新

   if(mDrawerList.get().getCount()==0){

    /*RUN AsyncTask*/

    }

列表视图的AsyncTask

       List<Menu> items;

        @Override
        protected void onPreExecute() {
        super.onPreExecute();
            /*GET FROM THE DATABASE*/
        }

        @Override
        protected String doInBackground(String... params) {

               if(items.size() == 0){

                /*PREPARE DATA AND PUT IT IN ARRAYLIST*/
               }
        }

       @Override
        protected void onPostExecute(String file_url) {
                super.onPostExecute(file_url);
            /*NEW CUSTOM ADAPTER*/
            mDrawerList.get().setAdapter(adapter);
        }

0 个答案:

没有答案