2015-10-07 4 views
1

У меня есть Деятельность X, Z и класс Y. Y представляет собой вид деятельности X и называется активность результата от Х до Z..its не собирается onActivityResult в X.Не запускается OnActivityResult in android

Activity X: 

SetContentView(Y); 

и

Intent i=new Intent(x.this,z.class); 
startActivityforResult(i,100); 

onActivityResult метод:

@Override 
     public void onActivityResult(int requestCode, int resultCode, Intent data) { 
      super.onActivityResult(requestCode, resultCode, data); 
    if(requestCode==100) 
    { 
    Log.e("Message from Z","Message"); 
    } 
    } 

Деятельность Z:

setResult(RESULT_OK, (new Intent()).setAction("close")); 
      this.finish(); 

Как это решить?

ответ

0

Вы создаете новое намерение; вам не нужно это делать.

Это должно работать:

setResult(Activity.RESULT_OK); 

finish(); 

Также в качестве рекомендации не использовать жесткий кодированный код запроса (в вашем случае 100). Объявите переменную private static final int и используйте ее при запуске действия для результата (startActivityforResult) и при принятии результата по методу onActivityResult.

+0

Не повезло с этим –

+0

@sreekanth пожалуйста вывесить onActivityResult код класса X – dsharew

+0

Опубликовано в вопрос .. –

0

Использование setResult(), как это:

Intent i = getIntent(); //gets the intent that called this intent 
setResult(Activity.RESULT_OK, i); 

Добавить свое намерение в качестве одного параметра setResult()

+0

ли у добавить намерения в качестве параметра setResult()? – Jas

+0

Да like..setResult (Activity.RESULT_OK, i); –

+0

обновить свой код, как этот – Jas

0

Попробуйте это:

в onActivityResult() обновление код

@Override 
public void onActivityResult(int requestCode, int resultCode, Intent data) { 
    super.onActivityResult(requestCode, resultCode, data); 
    if(requestCode==100) 
    { 
     if(resultCode == RESULT_OK) { 
     Log.e("Message from Z","Message"); 
     } 
    } 
} 

активность Z:

Intent intent = new Intent(); 
setResult(RESULT_OK, intent); 
finish(); 
+0

обновите свой вопрос с помощью всего кода, который вы сейчас выполняете. –

Смежные вопросы