【发布时间】:2014-02-14 08:26:09
【问题描述】:
我尝试使用我的一个按钮的 ID 设置标签:
int boeserzufall = (int) (Math.random()*23);
Button boese = arr.get(boeserzufall);
boese.setBackgroundResource(R.drawable.williboese);
boese.setTag(R.drawable.williboese);
这很好,boese.getTag() 给我带来了正确的 ID。 arr 是一个 ArrayList<Button>,其中包含我所有的按钮。
现在在我的 OnClick() 方法中,我想检查当前按钮是否具有与 boese 相同的 resId
b5.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View arg0) {
count++;
int resId = (Integer) arg0.getTag();
if(resId == R.drawable.williboese) {
Toast.makeText(MainActivity.this, "heeeee", Toast.LENGTH_SHORT).show();
}
}
});
我的问题是当我尝试读取 arg0.getTag() 时出现 Nullpointer 异常
编辑:
首先,我从数组中取出一个随机按钮,因此我想用R.drawable.williboese 设置背景图像。
因此,在我的 25 个按钮之一上,我的背景图像与其他按钮不同。这个我必须找到并做出与其他人不同的反应......
【问题讨论】:
-
您是否在将按钮添加到数组列表之前对其进行初始化?
-
你在 b5 上设置了 onClickListener...是同一个 boese 实例吗?
-
为不同的按钮设置标签并为不同的按钮获取标签。你也给 b5 设置了标签吗?
-
我编辑了我的问题以获取更多信息
-
也许这个答案...看here
标签: android button onclick nullpointerexception