0

私は3つのギャラリー画像を持っています。最初にボタンをクリックすると、ギャラリーの最初のセットが表示され、次にクリックするとギャラリーの2番目のセットが表示されます。2番目のボタンをクリックするとギャラリーの最初のセットを削除し、1番目のボタンをクリックするとギャラリーの2番目のセットを削除する方法。

コード:

画像:

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

2 番目のイメージ セットの 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;
4

1 に答える 1

0

状況に応じて入力リストをアダプターに変更するメソッドを作成し(つまり、ボタンのクリック)、呼び出しますadapter.notifyDataSetChanged()

于 2013-06-24T06:23:05.793 に答える