2013-11-01 5 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

опубликуйте данные логарифминга – d3m0li5h3r

+0

«Разве мы не можем отправить 2 разных ухищрения для одной и той же деятельности?» Что ты хочешь этим сказать? – 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(); 
    } 
Смежные вопросы