запустить метод onresume (), когда я меняю вкладку «ontabchange ()» в представлении

1

Я поместил код в onResume() чтобы он запускался каждый раз, когда я загружаю его снова нажатием на вкладку, но теперь проблема заключается в том, что сначала загружаются данные с сервера в список, когда я нажимаю первый раз на вкладке и когда я меняю и загрузите его снова, он закроется и дает "индекс массива из связанного исключения". Я думаю, что это потому, что он не удаляет предыдущие загруженные данные и поэтому как удалить или перезагрузить новые данные на вкладке, чтобы исключение не произошло? Это означает, что перед загрузкой новых данных через onResume() удаляются старые данные?

protected void onPause() {super.onPause();

 }


 protected void onResume()
{

   super.onResume();

   **new ProgressTask6().execute();**

}

private class ProgressTask6 extends AsyncTask<String, Void, Boolean> {
 private ProgressDialog dialog;
            private Context context;
            @Override
            protected void onPreExecute() {
                 dialog = new ProgressDialog(OpeningToday.this);
                 dialog.setMessage("Processing...");
                 dialog.setIndeterminate(true);
                 dialog.setCancelable(false);
                 dialog.show();
        }

            @Override
        protected void onPostExecute(final Boolean success) {

                if (dialog.isShowing())
                {
                dialog.dismiss();
                setListAdapter(new MyAdapter(OpeningToday.this));
            }


     }
        @Override
        protected Boolean doInBackground(String... args) {
              try{ 


         } catch (Exception e){
           Log.e("tag", "error", e);
           return false;
        }
        return null;
       }
        class MyAdapter extends BaseAdapter implements OnClickListener
        {


                    }        

                    @Override
                    public int getCount() {
                       }                        }

                    /* Not implemented but not really needed */
                    @Override
                    public Object getItem(int position) {
                        return null;
                    }

                    /* Not implemented but not really needed */
                    @Override
                    public long getItemId(int position) { 
                        return 0;
                    }

                    @Override
                    public View getView(int position, View ConvertView, ViewGroup parent) 
                    {
                        View v = inflater.inflate(R.layout.listitem_layout, parent, false);
                       // Log.i("array galoijewdh..",keywordresulttab.array_galleryname[position]);
                        Log.i("saurabh trivedi","saurabh trivedui");
                       // Variables.a=3;
                        String   gallerynames = keywordresulttab.array_galleryname[position];
                        String  addresses = keywordresulttab.array_address[position];            
                        TextView tv = (TextView) v.findViewById(R.id.barrio);
                        tv.setText(gallerynames);
                        tv = (TextView) v.findViewById(R.id.ciudad);
                        tv.setText(addresses);
                        ((BaseAdapter)(getListAdapter())).notifyDataSetChanged();
                        return v;
                    }
                @Override
                    public void onClick(DialogInterface dialog, int which) {
                        // TODO Auto-generated method stub

                    }

                    }
 }


 protected void onResume()
{

   super.onResume();

   **new ProgressTask6().execute();**

}

private class ProgressTask6 extends AsyncTask<String, Void, Boolean> {
 private ProgressDialog dialog;
            private Context context;
            @Override
            protected void onPreExecute() {
                 dialog = new ProgressDialog(OpeningToday.this);
                 dialog.setMessage("Processing...");
                 dialog.setIndeterminate(true);
                 dialog.setCancelable(false);
                 dialog.show();
        }

            @Override
        protected void onPostExecute(final Boolean success) {

                if (dialog.isShowing())
                {
                dialog.dismiss();
                setListAdapter(new MyAdapter(OpeningToday.this));
            }


     }
        @Override
        protected Boolean doInBackground(String... args) {
              try{ 


         } catch (Exception e){
           Log.e("tag", "error", e);
           return false;
        }
        return null;
       }
        class MyAdapter extends BaseAdapter implements OnClickListener
        {


                    }        

                    @Override
                    public int getCount() {
                       }                        }

                    /* Not implemented but not really needed */
                    @Override
                    public Object getItem(int position) {
                        return null;
                    }

                    /* Not implemented but not really needed */
                    @Override
                    public long getItemId(int position) { 
                        return 0;
                    }

                    @Override
                    public View getView(int position, View ConvertView, ViewGroup parent) 
                    {
                        View v = inflater.inflate(R.layout.listitem_layout, parent, false);
                       // Log.i("array galoijewdh..",keywordresulttab.array_galleryname[position]);
                        Log.i("saurabh trivedi","saurabh trivedui");
                       // Variables.a=3;
                        String   gallerynames = keywordresulttab.array_galleryname[position];
                        String  addresses = keywordresulttab.array_address[position];            
                        TextView tv = (TextView) v.findViewById(R.id.barrio);
                        tv.setText(gallerynames);
                        tv = (TextView) v.findViewById(R.id.ciudad);
                        tv.setText(addresses);
                        ((BaseAdapter)(getListAdapter())).notifyDataSetChanged();
                        return v;
                    }
                @Override
                    public void onClick(DialogInterface dialog, int which) {
                        // TODO Auto-generated method stub

                    }

                    }

} }

  • 0
    Что такое сайтыЛист? Это список, в котором вы храните ваши проанализированные данные?
  • 0
    класс, в котором у меня есть метод получения и установки и использование списка массивов для хранения переменных данных. для более подробной информации перейдите к моей части ниже, я также добавил класс списка сайтов
Теги:

1 ответ

0

Инициализируйте данные индекса/удаления в onPause() который является противоположностью onResume().

Как правило (согласно жизненному циклу активности) - очищайте то, что вам нужно в противоположном методе -

  • onCreate() - onDestroy()
  • onStart()/onRestart() - onStop()
  • onResume() - onPause()
  • 0
    Привет, MByD, я новичок в Android и Java. Можете ли вы объяснить мне некоторые детали, пожалуйста, PLS, пожалуйста, как освободить ранее загруженные данные, спасибо за ответ
  • 0
    как инициализировать индекс / удалить данные в onPause ()?
Показать ещё 4 комментария

Ещё вопросы

Сообщество Overcoder
Наверх
Меню