Android GetExtra导致应用程序崩溃

时间:2013-11-01 11:57:44

标签: android android-intent

我正在使用导致应用程序崩溃的getExtra。

在我点击按钮的活动中,我正在使用此代码

String test1ID = "test1ID";
Intent intenttesting1 = new Intent(getActivity(), MyActivity.class);                      
intenttesting1 .putExtra("Test1", test1ID);
startActivity(intenttesting1 );

然后在MyActivity中我使用以下代码来获取意图

Bundle extras = getIntent().getExtras();
if(extras != null){
    if(extras.getString("Test1").equals("test1ID")){ // if an extra has been set
        Toast.makeText(getApplicationContext(), "Test 1 Worked", Toast.LENGTH_LONG).show();
    }
}

这很有效。

我有另一个按钮,我想用它来发送不同的字符串。 但是这样做会导致应用程序崩溃。

 String test2ID = "test2ID";
 Intent intenttesting2 = new Intent(getActivity(), MyActivity.class);                      
 intenttesting2 .putExtra("Test2", test2ID);
 startActivity(intenttesting2 );

 Bundle 2extras= getIntent().getExtras();
 if(2extras!= null){
     if(2extras.getString("Test2").equals("test2ID")){ // if an extra has been set
         Toast.makeText(getApplicationContext(), "Test 1 Worked", Toast.LENGTH_LONG).show();
     }
}

我们是否无法向同一活动发送2个不同的意图附加内容?

不确定我做错了什么,因为两组代码都有效,但一次只能运行一组或应用程序崩溃。

提前致谢。

2 个答案:

答案 0 :(得分:0)

使用.equals

时,使用yoda notation来防止空指针取消引用
Bundle 2extras= getIntent().getExtras();
if(2extras!= null) {
   if("test2ID".equals(2extras.getString("Test2"))){
      Toast.makeText(getApplicationContext(), "Test 1 Worked", Toast.LENGTH_LONG).show();
   }
}

答案 1 :(得分:0)

I think you should be used this for this situation

String test1ID = "test1ID";
Intent intenttesting1 = new Intent(getActivity(), MyActivity.class);                      
intenttesting1 .putExtra("Test1", test1ID);
startActivity(intenttesting1 );

for next activity
 if("test2ID".equals(getIntent().getStringExtra("Test1"))){
      Toast.makeText(getApplicationContext(), "Test 1 Worked", Toast.LENGTH_LONG).show();
   }