onActivityResult НЕ вызывается в MainActivity из предыдущей операции - PullRequest
0 голосов
/ 17 сентября 2018

Я знаю, что это основной вопрос, и я видел несколько ответов на него в stackoverflow, но я, кажется, застрял до сих пор. OnActivityResult просто не вызывается.

Вот мой код:

1> В MainActivity у меня есть onActivityResult

public class MainActivity extends AppCompatActivity
        implements MasterListFragment.OnImageClickListener {

    @Override
    protected void onActivityResult(int requestCode, int resultCode, @Nullable Intent data) {
        super.onActivityResult(requestCode, resultCode, data);
        Log.v(LOG_TAG, "Entering onActivityResult");

    }
}

2> Во втором занятии у меня это

@Override
    public void onBackPressed() {

        Intent data = new Intent();
        data.putExtra("myData1", "Data 1 value");
        data.putExtra("myData2", "Data 2 value");
        setResult(Activity.RESULT_OK, data);
        finish();
    }

Я делаю журнал, и оператор LOG не отображается в LOGCAT

Ответы [ 3 ]

0 голосов
/ 17 сентября 2018

В вашей основной деятельности Откройте намерение, как это:

Intent intent = new Intent(this,"Your c class name.class");
 startActivityForResult(intent, 1);

и во втором занятии сделайте следующее:

Intent returnIntent = new Intent();
  returnIntent.putExtra("result",result);//your changed value here
  setResult(Activity.RESULT_OK,returnIntent);
  finish();

Снова в вашей основной деятельности сделать это

  @Override
  protected void onActivityResult(int requestCode, int resultCode, Intent data) {

if (requestCode == 1) {
    if(resultCode == Activity.RESULT_OK){
        String result=data.getStringExtra("result");

        //you will get the changed data here
      }
      if (resultCode == Activity.RESULT_CANCELED) {
          //Write your code if there's no result
     }
  }
  }//onActivityResult
0 голосов
/ 17 сентября 2018

Использование MainActivity.this.startActivityForResult(intent, REQUEST_CODE);

0 голосов
/ 17 сентября 2018

Чтобы получить результат обратно в OnActivityResult, вы должны использовать startActivityForResult(Intent,REQ_CODE) метод для запуска вашего второго действия.

...