-1

我正在使用导致应用程序崩溃的 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 个不同的意图附加内容吗?

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

提前致谢。

4

2 回答 2

0

使用时使用yoda 表示法防止空指针取消引用.equals

Bundle 2extras= getIntent().getExtras();
if(2extras!= null) {
   if("test2ID".equals(2extras.getString("Test2"))){
      Toast.makeText(getApplicationContext(), "Test 1 Worked", Toast.LENGTH_LONG).show();
   }
}
于 2013-11-01T12:08:41.970 回答
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();
   }
于 2013-11-01T12:42:58.600 回答