2013-11-01 111 views
-1

我正在使用導致應用程序崩潰的getExtra。Android 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個不同的意圖附加到相同的活動?

不知道我在做什麼錯,因爲這兩組代碼都可以工作,但是一次只能工作一組,或者應用程序崩潰。

在此先感謝。

+0

你有沒有從崩潰的堆棧跟蹤? – thegrinner

+0

發佈logcat詳細信息 – d3m0li5h3r

+0

「我們無法向同一活動發送兩個不同的意向附加信息嗎?」這是什麼意思? – Raghunandan

回答

0

使用yoda notation,以防止空指針引用時使用.equals

Bundle 2extras= getIntent().getExtras(); 
if(2extras!= null) { 
    if("test2ID".equals(2extras.getString("Test2"))){ 
     Toast.makeText(getApplicationContext(), "Test 1 Worked", Toast.LENGTH_LONG).show(); 
    } 
} 
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(); 
    }