2012-02-09 31 views
0

我是Android上的全新品牌。我试图设置菜单按钮,并遇到了这个问题。我检查了这个论坛关于这个,发现它意味着没有定义的东西,但无法弄清楚我的代码中的哪一个没有定义。请帮忙!任何建议将不胜感激。致命异常:由java.lang.NullPointerException引发的主菜单按钮

顺便说一下,Camera_SettingActivity.java工作正常,如果我分开运行它。

public class VideoViewActivity extends Activity { 

    protected int my_num = 2280; 
    protected Intent intent_camera; 

    /** Called when the activity is first created. */ 
      @Override 
      public boolean onCreateOptionsMenu(Menu menu) { 
       MenuInflater inflater = getMenuInflater(); 
       inflater.inflate(R.layout.menu, menu); 
       return true; 
      } 

      @Override 
      public boolean onOptionsItemSelected(MenuItem item) { 

       intent_camera = new Intent(); 

       switch (item.getItemId()) { 

        case R.id.camera: 
         intent_camera.setClass(VideoViewActivity.this, Camera_SettingActivity.class); 
         startActivityForResult(intent_camera, my_num); 
         break; 

       } 
       return true; 
      } 

} 



public class Camera_SettingActivity extends Activity { 


protected int my_num = 1228; 
private Bundle bundle; 

public static String url = "rtsp://v3.cache8.c.youtube.com/CiILENy73wIaGQmXovF6e-Rf-BMYDSANFEgGUgZ2aWRlb3MM/0/0/0/video.3gp"; 
private VideoView videoView1 = null; 
private Context ctx = null; 
private ProgressBar prog1 = null; 

protected String str_IP; 

/** Called when the activity is first created. */ 
@Override 
public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.my_camera_layout); 

    bundle = this.getIntent().getExtras(); 

    str_IP = bundle.getString("editIP"); 

    Button test1 = (Button) findViewById(R.id.button_test1); 

    test1.setOnClickListener(new Button.OnClickListener() { 

     @Override 
     public void onClick(View v) { 

      prog1 = (ProgressBar)findViewById(R.id.progressBar1); 
        videoView1 = (VideoView) findViewById(R.id.videoView1); 
        Uri video = Uri.parse(url); 

        videoView1.setVideoURI(video); 

        videoView1.setOnErrorListener(new OnErrorListener() { 

         @Override 
         public boolean onError(MediaPlayer mp, int what, int extra) { 
          // TODO Auto-generated method stub 
          Toast.makeText(ctx, "Error occured", 500).show(); 
          return false; 
         } 
        }); 

        videoView1.setOnPreparedListener(new OnPreparedListener() { 

         public void onPrepared(MediaPlayer arg0) { 
          prog1.setVisibility(View.GONE); 
          videoView1.start(); 
         } 
        }); 
      } 

    }); 
} 

@Override 
protected void onDestroy() { 
    try{ 
     videoView1.stopPlayback(); 
    }catch(Exception e){ 
     // 
    } 
    super.onDestroy(); 
} 

}

+1

请发布LogCat输出。它应该显示NPE发生的行号。 – 2012-02-09 22:05:53

+1

在包含第57行的'Camera_SettingActivity.java'中发布该函数。 – 2012-02-09 22:40:46

+0

感谢您的评论。正如您在Camera_SettingActivity.java的发布代码中所看到的,在我删除了“str_IP = bundle.getString(”editIP“);”之后,该菜单正常工作。 – user1200699 2012-02-10 15:55:21

回答

1

每个活动应该有onCreate()方法。你的代码缺少它。这可能会导致错误。在方法内部添加onCreate()和setContentView()。

+0

嗨非常感谢你的帮助。我在第一次创建活动时调用了/ **之后添加了这个。 * /,但仍然是同样的问题。 @Override public void onCreate(Bundle savedInstanceState){ super.onCreate(savedInstanceState); setContentView(R.layout.main); } – user1200699 2012-02-09 22:22:42