1. ホーム
  2. java

[解決済み] 結果配信の失敗 ResultInfo

2022-02-17 15:56:52

質問

stackoverflowで同じエラーに遭遇した人がたくさんいるのですが、それらの投稿の中に関連する解決策を見つけることが出来ませんでした。私のMainActivityはstartActivityForResult()で新しいアクティビティ(SecondActivity)を開始し、SecondActivityはonBackPressed(); と putExtra() でいくつかのデータを返します。

MainActivity.javaより抜粋。

public void addNewNote(View v){

    Intent intent = new Intent(this, SecondActivity.class);
    intent.putExtra("Source", "NEW");
    startActivityForResult(intent, 1); //1 is the result code

}

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

    Log.v("TAG", data.getStringExtra("Note"));
      if (requestCode == 1) {

         if(resultCode == RESULT_OK){        
             listItems.add(data.getStringExtra("Note"));
             Log.v("TAG", data.getStringExtra("Note"));
             adapter.notifyDataSetChanged();
             listView.invalidateViews();
         }
         if (resultCode == RESULT_CANCELED) {   

         }
      }

}

SecondActivity.javaから抜粋。

@Override
public void onBackPressed() {

    super.onBackPressed();
    if (mainTextField.getText() != null){
        Intent returnIntent = new Intent();
        returnIntent.putExtra("Note",mainTextField.getText());
        setResult(RESULT_OK, returnIntent);     
        finish();
    } else {
        Intent returnIntent = new Intent();
        setResult(RESULT_CANCELED, returnIntent);        
        finish();
    }

}

ログキャット

解決方法は?

これを試してみてください。

protected void onActivityResult(int requestCode, int resultCode, Intent data) 
{
      if (requestCode == 1 && data != null) 
      {
         Log.v("TAG", data.getStringExtra("Note"));
         if(resultCode == RESULT_OK)
         {        
             listItems.add(data.getStringExtra("Note"));
             Log.v("TAG", data.getStringExtra("Note"));
             adapter.notifyDataSetChanged();
             listView.invalidateViews();
         }
         if (resultCode == RESULT_CANCELED) 
         {   

         }
      }
}