0

私はかなり長い間、次のコードを使用してきました

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 は正しいです。私はここで真剣に困惑しています。誰かがこれを明らかにできることを願っています。

ありがとう。

4

1 に答える 1

0
int resID = getResources().getIdentifier(buttonID, "Button", "com.msimionescu.mydiabetes");
于 2013-06-02T22:15:14.440 に答える