2016-06-07 4 views
0

Я знаю, что есть несколько вопросов об этом, но я не нашел решения для своей проблемы.FragmentActivity onActivityResult data is null

У меня есть ActivityA, который распространяется AppCompatActivity. Он начинает ActivityB

Activity A

Intent intent = new Intent(this, ActivityB.class); 
intent.putExtra("data", data); 
startActivityForResult(intent, 1); 

.... 

@Override 
protected void onActivityResult(int requestCode, int result, Intent intent) { 
    super.onActivityResult(requestCode, result, intent); 
    if (requestCode != 1) { // check code 
     return; 
    } 

    if (intent == null) { // HERE INTENT IS NULL 

     return; 
    } 
} 

активность B

// code called when an asynctask is done 
Intent i = new Intent(); 
i.putExtra("dataone", "test"); 
i.putExtra("datatwo", objet); 
setResult(RESULT_OK, i); 
finish(); 

Я не понимаю, почему intent в onActivityResult() методе null.

+0

, возможно, вы пропустили эту линию в OnActivityResult() 'super.onActivityResult (requestCode, результат, цель);' –

+0

NOP :(Я написал – deveLost

+0

незлой столб, существенный код метода onActivityResult, а также класс активности B. . –

ответ

0

Две вещи. Я бы реорганизовал ваш код следующим образом:

@Override 
protected void onActivityResult(int requestCode, int resultCode, Intent intent) { 
if (requestCode == 1) { 
    if (resultCode == RESULT_OK) { 
     // example 
     // String myString = intent.getString("myStringFrom2ndActivity") 

     } 
    } 
} 

, а также убедитесь, что вы вызываете правильный RESULT_OK. Это должно быть что-то вроде Activity.RESULT_OK.

+0

Nop, это не работает, это то же самое, что и я. – deveLost