我使用以下代码已经有一段时间了
int[] icons = { R.drawable.heart, R.drawable.clock,
R.drawable.calculator, R.drawable.pizza,
R.drawable.calendar, R.drawable.email};
OnClickListener[] listeners = { _handleCheckin, _handleTimer,
_handleCalculator, _handleCalories,
_handleCalendar, _handleEmail };
for(int i = 0; i < 6; i++)
{
String buttonID = "button" + i;
int resID = getResources().getIdentifier(buttonID, "id", "com.msimionescu.mydiabetes");
Button b = ((Button) findViewById(resID));
b.setBackgroundResource(icons[i]);
b.setWidth(50);
b.setHeight(50);
b.setOnClickListener( listeners[i] );
b.setOnTouchListener(new OnTouchListener() {
@Override
public boolean onTouch(View v, MotionEvent event) {
switch (event.getAction()) {
case MotionEvent.ACTION_DOWN: {
v.getBackground().setColorFilter(0x66000000,PorterDuff.Mode.SRC_ATOP);
v.invalidate();
break;
}
case MotionEvent.ACTION_UP: {
v.getBackground().clearColorFilter();
v.invalidate();
break;
}
}
return false;
}
});
突然间,它开始崩溃,在 for 循环中调用空指针。从技术上讲,它找不到按钮。
我的 R 文件是否有可能已损坏或发生其他情况?我尝试手动配置每个按钮,但它仍然崩溃。是的,我的按钮有正确的 ID。我在这里被严重难住了,我希望有人能澄清这一点。
谢谢。
最佳答案
int resID = getResources().getIdentifier(buttonID, "Button", "com.msimionescu.mydiabetes");
关于android - 代码突然崩溃,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16887792/