gridView单击处理程序

问题描述

我的gridView包含ImageButtons和空白ImageView。我正在尝试将setimageDrawable();的{​​{1}}设为获得点击的ImageView的值,但我收到此错误

ImageButton

我将java.lang.NullPointerException: Attempt to invoke virtual method 'void android.widget.ImageView.setimageDrawable(android.graphics.drawable.Drawable)' on a null object reference 用于baseAdapter,并添加一个自定义方法来处理被点击的gridViewImageButton中的位置

gridView

public int getItemClicked(int i) { return icons_id[i]=i; } 是由3个图标组成的int数组

icon_id

int [] icons_id = {R.drawable.ic_icon1,...};

我放大了包含ImageButton的自定义布局,然后在public View getView(final int i,View view,ViewGroup viewGroup) {}内创建ImageButton来处理点击,并在getView();情况下创建了switch内的每个按钮>

grideView

Toast正在工作,但是按钮不工作,正在获取NullPointerException,我的猜测是从imageView我需要setimageDrawable();。到gridView中单击的ImageButton的值。

我认为从数组 ImageButton imageButton = gridView.findViewById(R.id.icon_btn); imageButton.setimageResource(icons_id[i]); imageButton.setonClickListener(new View.OnClickListener() { @Override public void onClick(View view) { Activity activity = new Activity(); activity.nImage_preview = view.findViewById(R.id.image_preview); switch (getItemClicked(i)) { case 0: activity.nImage_preview.setimageDrawable(ContextCompat .getDrawable(Activity.this,R.drawable.ic_icon1)); Toast.makeText(view.getContext(),"clicked "+getItemClicked(i),Toast.LENGTH_SHORT).show(); break; case 1: activity.nImage_preview.setimageDrawable(ContextCompat .getDrawable(Activity.this,R.drawable.ic_icon2)); Toast.makeText(view.getContext(),Toast.LENGTH_SHORT).show(); break; } } }); icons_id获取图片是可行的,但是我不得不从中更改代码

getIcons_id()[getItemClicked(i)];

对此

activity.nImage_preview.setimageDrawable(ContextCompat
.getDrawable(Activity.this,getIcons_id()[getItemClicked(i)];));

找出问题所在,但我的猜测是activity.nImage_preview.setimageDrawable(ContextCompat .getDrawable(Activity.this,R.drawable.ic_icon1)); ,但我不知道如何解决:( 我尝试了我知道的所有方法,请帮忙

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)