1

単純なAndroidアプリケーションのsetOnClickListenerに問題があります。私の状況:

メイン画面に4つのボタンがありますボタン1(動作)ボタン2(動作)ボタン2(EEeeeee ... rror)ボタン4(まだ接続されていません)

2つの最初のボタンを新しいアクティビティに接続しました(すべてうまく機能します)。3番目のボタンを作成しているときに問題が発生します。私はコードを持っています:

findViewById(R.id.btn_mAmperClear).setOnClickListener(new OnClickListener(){
        @Override
        public void onClick(View v){

        }
    });

クリアクラスファイル(上記のコードのないJavaファイル)を使用すると、すべてうまく機能します-エラーはありません。上位のコードを追加した後、アプリでクラッシュします:(

致命的な例外:メインjava.lang.RuntimeException:アクティビティを開始できませんComponentInfo {package.Name.ActivityName} java.lang.NullPointerException

他の3つの状況はうまく機能します(上記のコードは機能します)。

誰か助けてもらえますか?

4

2 に答える 2

3

への呼び出しfindViewById(R.id.btn_mAmperClear)は null を返しています。これは、実際にはアクティビティの layout.xml にその ID を持つビューがないことを意味します。

それまたはこれは、「依存関係チェーンについて知るにはあまりにも愚かであり、想定されているすべてをコンパイルしなかったため、Eclipse はプロジェクトを適切にビルドしませんでした」エラーの 1 つです。その場合は、プロジェクトを「クリーン」にして、最初から再構築してください。

于 2012-12-27T13:54:54.490 に答える
0

こんな風にやって..

private Button btn1;
private Button btn2;
private Button btn3;
private Button btn4;

@Override
public void onCreate(Bundle savedInstanceState)
{
    super.onCreate(savedInstanceState);
    setContentView(R.layout.yourPage);

    btn1=(Button)findViewById(R.id.btn_1);
    btn2=(Button)findViewById(R.id.btn_2);
    btn3=(Button)findViewById(R.id.btn_3);
    btn4=(Button)findViewById(R.id.btn_4);

    btn1.setOnClickListener(this);
    btn2.setOnClickListener(this);
    btn3.setOnClickListener(this);
    btn4.setOnClickListener(this);
    }

public void onClick(View v) {
    // TODO Auto-generated method stub

    switch (v.getId()) {

    case R.id.btn_1:
                    //do your stuff
        break;
    case R.id.btn_2:
                    //do your stuff
        break;
    case R.id.btn_3:
                    //do your stuff
        break;
    case R.id.btn_4:
                    //do your stuff
        break;
     }
}
于 2012-12-27T14:34:00.387 に答える