android - 代码突然崩溃

标签 android loops pointers crash null

我使用以下代码已经有一段时间了

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/

相关文章:

android - Visual Studio cordova 工具 - 无法运行/调试/部署到 Android。亚行挂起

android - DialogFragment 的简单示例 - 示例代码不适合我

android - 在 unity Android 中读取 xml 响应

excel - 引用不同的工作簿

在某些情况下,数组输入打印错误结果的自定义函数?

java - float 操作按钮菜单问题

javascript - 为了避免 "script is running too long"对话框,我应该拆分我的函数并定期运行它吗?

计算字符 - 文件的高度和长度 - C 编程

c - 指针递增

c++ - 转换指针类型的正确方法