java - 如何通过 onclick 在 android 中的 ImageView 上对适配器 ListView 中的整数数组使用 setVisibility

标签 java android onclick adapter invisible

我试图通过使用适配器 ListView 将可绘制对象中的图像存储到整数数组中来在单击图像时隐藏图像,但我无法获取它。这是我正在使用的代码:

当我单击图像时,它应该变得不可见。我将图像存储在 int 数组中并应用 setVisibilty看不见,但它不起作用。我希望图像显示在屏幕中央,而单击的图像应该变得不可见.我正在尝试将图像存储在整数数组中并将其设置在适配器列表中。我正在调用此函数

imageIDs[position].setVisible(false);

    Integer[] imageIDs = {
                R.drawable.c2,
                R.drawable.c3,
                R.drawable.c4,
                R.drawable.c5,
                R.drawable.c6,
                R.drawable.c7,
                R.drawable.c8
        };
     @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_main);
            // Note that Gallery view is deprecated in Android 4.1---
            Gallery gallery = (Gallery) findViewById(R.id.gallery1);
            //Adapter list
            gallery.setAdapter(new ImageAdapter(this));
            gallery.setOnItemClickListener(new OnItemClickListener() {
            //onclick event              
  public void onItemClick(AdapterView<?> parent, View v, int position,long id)
                {//displaying image clicked i am trying to invisible this pic when click
                    Toast.makeText(getBaseContext(),"pic" + (position + 1) + " selected",//dispplpaying msg
                            Toast.LENGTH_SHORT).show();
                    //imageIDs[position].setVisible(false);
                    // display the images selected
                    ImageView imageView = (ImageView) findViewById(R.id.image1);
                    imageView.setImageResource(imageIDs[position]);
                    //setting image on screen from using xml 
                }
            });
        }
        public class ImageAdapter extends BaseAdapter {
            private Context context;
            private int itemBackground;
            public ImageAdapter(Context c)
            {
                context = c;
                // sets a grey background; wraps around the images
                TypedArray a =obtainStyledAttributes(R.styleable.MyGallery);
                itemBackground = a.getResourceId(R.styleable.MyGallery_android_galleryItemBackground, 0);
                a.recycle();
            }
            // returns the number of images
            public int getCount() {
                return imageIDs.length;
            }
            // returns the ID of an 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
            public View getView(int position, View convertView, ViewGroup parent) {
                ImageView imageView = new ImageView(context);
                //imageIDs[position].setVisible(false);
                //i am trying it here but its not working
                imageView.setImageResource(imageIDs[position]);
                imageView.setLayoutParams(new Gallery.LayoutParams(100, 100));
                imageView.setBackgroundResource(itemBackground);
                return imageView;
            }
        }
    }

enter image description here

最佳答案

我假设您正在尝试使用此代码:

//imageIDs[position].setVisible(false);

如果是这样,那么您正在做的是在 Integer 上调用 setVisible,而 Integer 没有该方法。您需要做的是获取对正在显示图像的 ImageView 的引用,然后对其调用 setVisibility(View.INVISIBLE) 或 setVisibility(View.GONE) 。

此外,您似乎正在尝试将图像设置为不可见,但随后您将相同的资源放回到 ImageView 中,所以我不确定您要在那里做什么。

关于java - 如何通过 onclick 在 android 中的 ImageView 上对适配器 ListView 中的整数数组使用 setVisibility,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30016154/

相关文章:

Java和缓存内存: prefetching and alignment?

java - TCP 数据接收顺序错误/丢失

java - 如何克服 Hibernate Criteria 和 Example API 的限制?

java - 抽屉菜单未显示在 ViewPager + ActionBar.Listener 中

android - 使用 expo kit 在 React Native 中加载自定义原生组件

javascript - 使用 jquery datepicker 调用特定日期的特定图像的脚本

javascript - 仅在单击时将内容加载到 div 中

android - 如何从其他 View 的事件访问 View ( View 在布局层次结构中的不同分支中)?

java - Gradle "com.android.dex.DexException"构建涉及 cordova-plugin-googlemaps 和 ibm-mfp-push 插件的应用程序。

android - 在 Android 中从 Web View 编辑 Google 文档