如何解决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
,并添加了一个自定义方法来处理被点击的gridView
在ImageButton
中的位置
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 举报,一经查实,本站将立刻删除。