如何使用onresume()和onpause()为选项卡单击事件

时间:2011-07-05 09:28:01

标签: android

我的视图中有四个选项卡,选项卡输出取决于同一视图中的其他选项卡输入。因此,当我单击一个选项卡时,它会在列表视图中生成一个数组列表并显示项目,但是当我第二次单击同一个选项卡时,它会给出数组索引超出绑定的异常。我认为这是因为以前下载的内容在视图中,所以当我第一次点击选项卡时,如何删除/删除以前加载的内容。我知道它可以在onresume()和onpause()方法上完成,但是什么代码应该在onpause()中去除以前加载的内容。用新内容刷新它。 ontabclick()。

谢谢!

   public class OpeningToday extends ListActivity {
String name = null;
String typename = null;
static String array_type[];
static int totalartist;
static String array_galleryname[]=null;
static String array_address[]=null;
static String array_galleryurl[]=null;
static String array_email[];
static String array_web[];
static String array_phone[];
static String array_latitude[];
static String array_longitude[];
SitesList2 sitesList;
//static String gallerynames;
//static String addresses;
 private ProgressDialog dialog;
@Override
public void onCreate(Bundle savedInstanceState) {
    Log.i("saurabh trivedi","saurabh trivedui");
    super.onCreate(savedInstanceState);
    setContentView(R.layout.openingtoday);
    ImageView iv=(ImageView)findViewById(R.id.imv);
    iv.setBackgroundResource(R.drawable.fiiatlogo);

  new ProgressTask6().execute();

}
 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));
            }


           if(totalartist==0)
            {
                AlertDialog.Builder alt_bld = new AlertDialog.Builder(OpeningToday.this);
                alt_bld.setMessage("galleries not found..")
                .setCancelable(false)
                .setPositiveButton("OK", new DialogInterface.OnClickListener() {
                public void onClick(DialogInterface dialog, int id) {

            }
        });

                AlertDialog alert = alt_bld.create();
                // Title for AlertDialog
                alert.setTitle("Title");
                // Icon for AlertDialog
                alert.setIcon(R.drawable.icon);
                alert.show();
            }

     }
        @Override
        protected Boolean doInBackground(String... args) {
              try{ 
                  try {
                        SAXParserFactory spf = SAXParserFactory.newInstance();
                        SAXParser sp = spf.newSAXParser();
                        XMLReader xr = sp.getXMLReader();
                        String temp = "http://www.arteonline.mobi/iphone/output.php?visit=1";
                        temp = temp.replaceAll(" " ,"%20");
                        Log.i("temp url..",temp);
                        URL sourceUrl = new URL(temp);
                        XMLHandler myXMLHandler = new XMLHandler();
                        xr.setContentHandler(myXMLHandler);
                        xr.parse(new InputSource(sourceUrl.openStream()));
                    } 
                     catch (Exception e) {
                     System.out.println("XML Pasing Excpetion = " + e);
                    }
                     sitesList = XMLHandler.sitesList2;
                     keywordresulttab.array_galleryname = new String[sitesList.getGalleryname().size()];
                     totalartist= sitesList.getGalleryname().size();
                     Log.i("opening today artist..",Integer.toString(totalartist));
                     for (int i = 0; i < sitesList.getGalleryname().size(); i++)
                     {
                         name = sitesList.getGalleryname().get(i);
                         keywordresulttab.array_galleryname[i] = name;
                        // Log.i("array_spinner" + i, array_galleryname[i]);
                     }
                     keywordresulttab.array_type = new String[sitesList.getType().size()];
                     for (int i = 0; i < sitesList.getType().size(); i++)
                     {
                         name = sitesList.getType().get(i);
                         keywordresulttab.array_type[i] = name;
                    //     Log.i("array_spinner" + i, array_estado[i]);
                     }
                     keywordresulttab.array_email = new String[sitesList.getEmail().size()];
                     for (int i = 0; i < sitesList.getEmail().size(); i++)
                     {
                         name = sitesList.getType().get(i);
                         keywordresulttab.array_email[i] = name;
                    //     Log.i("array_spinner" + i, array_estado[i]);
                     }
                     keywordresulttab.array_address = new String[sitesList.getAddress().size()];
                     for (int i = 0; i < sitesList.getAddress().size(); i++)
                     {
                         name = sitesList.getAddress().get(i);
                         keywordresulttab.array_address[i] = name;
                         //Log.i("array_spinner" + i, array_address[i]);

                     }


                     keywordresulttab.array_web = new String[sitesList.getWeb().size()];
                     for (int i = 0; i < sitesList.getWeb().size(); i++)
                     {
                         name = sitesList.getWeb().get(i);
                         keywordresulttab.array_web[i] = name;

                     }

                     keywordresulttab.array_lati = new String[sitesList.getLati().size()];
                     for (int i = 0; i < sitesList.getLati().size(); i++)
                     {
                         name = sitesList.getLati().get(i);
                         keywordresulttab.array_lati[i] = name;
                         Log.i("array_spinner" + i,keywordresulttab.array_lati[i]);

                     }
                     keywordresulttab.array_longi = new String[sitesList.getLongi().size()];
                     for (int i = 0; i < sitesList.getLongi().size(); i++)
                     {
                         name = sitesList.getLongi().get(i);
                         keywordresulttab.array_longi[i] = name;
                         Log.i("array_spinner" + i, keywordresulttab.array_longi[i]);

                     }
                     keywordresulttab.array_phone = new String[sitesList.getPhoneno().size()];
                     for (int i = 0; i < sitesList.getPhoneno().size(); i++)
                     {
                         name = sitesList.getPhoneno().get(i);
                         keywordresulttab.array_phone[i] = name;

                     }
                     keywordresulttab.array_imgurl = new String[sitesList.getImagegalleryurl().size()];
                     for (int i = 0; i < sitesList.getImagegalleryurl().size(); i++)
                     {
                         name = sitesList.getImagegalleryurl().get(i);
                         keywordresulttab.array_imgurl[i] = name;

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

                    private LayoutInflater inflater;

                    public MyAdapter(Context ctx) {
                        super();
                        this.inflater = (LayoutInflater) ctx.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
                    }        

                    @Override
                    public int getCount() {
                        return totalartist;
                    }

                    /* 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
                    }
                    }
    }
}

1 个答案:

答案 0 :(得分:0)

在onResume()方法中使您的数组列表为空,并立即用新内容填充它。