-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);
            }
        });
   }
         }

LOGCAT

 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

它找不到 R.id.imageBtn1,所以 findViewById 返回 null。然后,当您尝试设置 onClickListener 时,它会引发异常。您可以通过添加空检查来避免异常,但要解决实际问题,您需要确保 id 在活动的视图中。

于 2014-03-09T22:45:36.283 回答
0

如果您已正确完成所有操作但仍然抛出异常,请尝试 Project -> Clean...

类似的帖子

于 2014-03-09T22:57:05.803 回答