-1

こんにちは、私はいくつかのイメージボタンを作成してからクリックリスナーをいくつか追加していますが、このヌルポインター例外エラーが発生しています。それがより役立つ場合は、logcatも含めました。アドバイスはありますか?どうもありがとう!

     import android.app.Activity;
     import android.content.Intent;
     import android.os.Bundle;
     import android.util.Log;
     import android.view.Menu;
     import android.view.MenuItem;
     import android.view.View;
     import android.view.View.OnClickListener;
     import android.widget.ImageButton;

    public class menuloader extends Activity {
private final String TAG = "Main Activity";
ImageButton imgButton1;
@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.menulayout);
    addButtonListener1();
    addButtonListener2() ;
    addButtonListener3() ;
    addButtonListener4() ;
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
    // Inflate the menu; this adds items to the action bar if it is present.
    getMenuInflater().inflate(R.menu.main, menu);
    Log.i(TAG,"OnCreate");
    return true;
}

public void addButtonListener1() {

    imgButton1 = (ImageButton) findViewById(R.id.imageBtn1);
    imgButton1.setOnClickListener(new OnClickListener() {
        @Override
        public void onClick(View view) {
            Intent intent = new Intent(getApplicationContext(), 
          bars.class);
            startActivity(intent);
        }
    });
}
    public void addButtonListener2() {

        imgButton1 = (ImageButton) findViewById(R.id.imageButton2);
        imgButton1.setOnClickListener(new OnClickListener() {
            @Override
            public void onClick(View view) {
                Intent intent = new Intent(getApplicationContext(), 
              ListViews.class);
                startActivity(intent);
            }
        });
}
    public void addButtonListener3() {

        imgButton1 = (ImageButton) findViewById(R.id.imageButton3);
        imgButton1.setOnClickListener(new OnClickListener() {
            @Override
            public void onClick(View view) {
                Intent intent = new Intent(getApplicationContext(),
     barsandrest.class);
                startActivity(intent);
            }
        });
}
    public void addButtonListener4() {

        imgButton1 = (ImageButton) findViewById(R.id.imageButton4);
        imgButton1.setOnClickListener(new OnClickListener() {
            @Override
            public void onClick(View view) {
                Intent intent = new Intent(getApplicationContext(),    
           events.class);
                startActivity(intent);
            }
        });
   }
         }

ログキャット

 03-09 22:20:23.173: E/AndroidRuntime(8267): Caused by: java.lang.NullPointerException
 03-09 22:20:23.173: E/AndroidRuntime(8267):    at 
 com.example.demomap.menuloader.addButtonListener1(menuloader.java:54)
 03-09 22:20:23.173: E/AndroidRuntime(8267):    at com.example.demomap.menuloader.onCreate  
 (menuloader.java:23)
 03-09 22:20:23.173: E/AndroidRuntime(8267):    at android.app.Activity.performCreate       
 (Activity.java:5133)
 03-09 22:20:23.173: E/AndroidRuntime(8267):    at  
 android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1087)
 03-09 22:20:23.173: E/AndroidRuntime(8267):    at 
 android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2175)
4

2 に答える 2

0

すべてを正しく実行しても例外がスローされる場合は、Project -> Clean... を試してください。

類似の投稿

于 2014-03-09T22:57:05.803 に答える
0

R.id.imageBtn1 が見つからないため、findViewById は null を返しています。次に、onClickListener を設定しようとすると、例外がスローされます。null チェックを追加することで例外を回避できますが、実際の問題を修正するには、id がアクティビティのビューにあることを確認する必要があります。

于 2014-03-09T22:45:36.283 に答える