StartActivityforResult для ребенка не вернет результат?

HI,

У меня есть tabhost с дочерним действием, из этого дочернего Activity я собираюсь запустить новое Activity не как дочернее действие, для этого я запускаю действие, используя метод «startActivityForResult», но он не возвращает результат от нового Activity предыдущему дочернему элементу вкладка Активность.

i StartActivity следующим образом,

startActivityForResult((new Intent(tabchild.this,
                    NewInstanceActivity.class)),requestCode);

 protected void onActivityResult(int requestCode,int resultCode,Intent data) {
      if(resultCode==1){
               system.out.println("Activity started");
      }
      else{
          system.out.println("Activity not started");
      }
  }

в NewInstanceActivity.class я возвращаю результат следующим образом:

Intent in = new Intent();
setResult(1, in);

Но это не работает. Кто-нибудь предлагает какую-нибудь технику, чтобы решить эту проблему.

Спасибо


person Karthi    schedule 17.03.2011    source источник
comment
but it doesn't work. Если есть какие-либо проблемы, вы должны опубликовать журнал ошибок от LogCat   -  person Vikas Patidar    schedule 17.03.2011
comment
Я предполагаю, что вы вызываете finish () после того, как установили setResult ()?   -  person NickT    schedule 17.03.2011


Ответы (1)


Вам нужно использовать putExtra (), чтобы получить возвращаемое значение, которое вы ищете. Затем вы можете ссылаться на него с именем, которое вы дали ему, например, "ReturnData".


Intent intent= getIntent();
  String msg = intent.getStringExtra("sampleData");
  msg += ", This is my message";
  intent.putExtra("returnedData", msg);
  setResult(RESULT_OK, intent);
  finish();
person Jim    schedule 17.03.2011
comment
Нет, не знаешь. Если вы хотите знать только resultCode, дополнительные функции не требуются - person NickT; 17.03.2011
comment
используйте getParent.SetResult (намерение, данные); - person jsp; 04.08.2011