按钮单击事件时删除图库

时间:2013-06-24 06:13:00

标签: android image gallery contextmenu

我有3个图库图片。首次单击按钮时,它会显示第一组图库,然后单击它会显示第二组图库。单击第二个按钮时如何删除第一组图库,单击第一个按钮时删除第二组图库。

代码:

图片:

Integer[] imageIDs = {

             R.drawable.nat,
                R.drawable.nat1,
                R.drawable.nat2,
                R.drawable.nat3,
                R.drawable.nat4,
                R.drawable.nat5,
                R.drawable.nat6,
                R.drawable.nat7


            };

     Integer[] imageIDs1 = {
             R.drawable.tree,
                R.drawable.tree1,
                R.drawable.tree2,
                R.drawable.tree3,
                R.drawable.tree4,
                R.drawable.tree5,
                R.drawable.tree6,
                R.drawable.tree7
            };

第一组图像的ImageAdapter:

public class ImageAdapter extends BaseAdapter
        {
        Context context;
        int itemBackground;


        public ImageAdapter(Context c)
          {
            context = c;
            //---setting the style---
           // TypedArray a = obtainStyledAttributes(R.styleable.Gallery1); 
           // itemBackground = a.getResourceId(
                               //   R.styleable.Gallery1_android_galleryItemBackground, 0); 

          //  a.recycle();
          }


        //---returns the number of images---
        public int getCount() {
          return imageIDs.length;
         }

        //---returns the item---
        public Object getItem(int position) {
          return position;
         }
        //--returns the ID of an item---
        public long getItemId(int position) {
          return position;
        } 

        //---returns an ImageView view---

        @Override
        public View getView(int position, View convertView, ViewGroup parent) {
            // TODO Auto-generated method stub
            ImageView imageView;
              if (convertView == null) {
                imageView = new ImageView(context);
                 //set the ImageView to display image in array
                 // at user selected position
                imageView.setImageResource(imageIDs[position]);  
                imageView.setScaleType(ImageView.ScaleType.FIT_XY);
                imageView.setLayoutParams(new Gallery.LayoutParams(150, 120)); 

               // imageView.setLayoutParams(new Gallery.LayoutParams(300, 300));

              } else {
                imageView = (ImageView) convertView;
              } 

              imageView.setBackgroundResource(itemBackground);
              return imageView;
        }
    }

第二组图像的ImageAdapter:

 public class ImageAdapter1 extends BaseAdapter
        {
        Context context;
        int itemBackground;


        public ImageAdapter1(Context c)
          {
            context = c;
            //---setting the style---
           // TypedArray a = obtainStyledAttributes(R.styleable.Gallery1); 
           // itemBackground = a.getResourceId(
                               //   R.styleable.Gallery1_android_galleryItemBackground, 0); 

          //  a.recycle();
          }


        //---returns the number of images---
        public int getCount() {
          return imageIDs1.length;
         }

        //---returns the item---
        public Object getItem(int position) {
          return position;
         }
        //--returns the ID of an item---
        public long getItemId(int position) {
          return position;
        } 

        //---returns an ImageView view---

        @Override
        public View getView(int position, View convertView, ViewGroup parent) {
            // TODO Auto-generated method stub
            ImageView imageView;
              if (convertView == null) {
                imageView = new ImageView(context);
                 //set the ImageView to display image in array
                 // at user selected position
                imageView.setImageResource(imageIDs1[position]);  
                imageView.setScaleType(ImageView.ScaleType.FIT_XY);
                imageView.setLayoutParams(new Gallery.LayoutParams(150, 120)); 

               // imageView.setLayoutParams(new Gallery.LayoutParams(300, 300));

              } else {
                imageView = (ImageView) convertView;
              } 

              imageView.setBackgroundResource(itemBackground);
              return imageView;
        }
    }

ContextMenu按钮点击:

 popup_but = (Button) findViewById(R.id.popup_but_id);

            registerForContextMenu(popup_but);

            popup_but.setOnClickListener(new OnClickListener(){

                @Override
                public void onClick(View v) {
                    // TODO Auto-generated method stub

                    openContextMenu(v);

                }



            });

@Override
     public void onCreateContextMenu(ContextMenu menu, View v,
       ContextMenuInfo menuInfo) {
      // TODO Auto-generated method stub
      super.onCreateContextMenu(menu, v, menuInfo);
      getMenuInflater().inflate(R.menu.main, menu);
         menu.setHeaderTitle("Nature");
     }

ContextMenu点击事件:

     @Override
     public boolean onContextItemSelected(MenuItem item) {
      // TODO Auto-generated method stub
      switch (item.getItemId()) {
      case R.id.nat:

        //  gallery1.setEnabled(false);

           gallery=(Gallery)findViewById(R.id.gall1);

        //  gallery.setEnabled(false);

            gallery.setAdapter(new ImageAdapter(MainActivity.this));

            gallery.setOnItemClickListener(new OnItemClickListener()
            {

                @Override
                public void onItemClick(
                        AdapterView<?> parent, View v,
                        int position, long id) {
                    // TODO Auto-generated method stub

                    final ImageView imageView = (ImageView) findViewById(R.id.image1);
                    imageView.setImageResource(imageIDs[position]);
 return true;
                        }
                    });
break;

case R.id.tree:

        //  gallery1.setEnabled(false);

           gallery1=(Gallery)findViewById(R.id.gall2);

        //  gallery1.setEnabled(false);

            gallery1.setAdapter(new ImageAdapter1(MainActivity.this));

            gallery1.setOnItemClickListener(new OnItemClickListener()
            {

                @Override
                public void onItemClick(
                        AdapterView<?> parent, View v,
                        int position, long id) {
                    // TODO Auto-generated method stub

                    final ImageView imageView = (ImageView) findViewById(R.id.image2);
                    imageView.setImageResource(imageIDs[position]);
 return true;
                        }
                    });
break;

1 个答案:

答案 0 :(得分:0)

根据情况(例如按钮点击)编写一个方法将输入列表更改为适配器并调用adapter.notifyDataSetChanged()