web-dev-qa-db-fra.com

Echec de la livraison du résultat ResultInfo

Il y a beaucoup de gens qui ont rencontré la même erreur sur stackoverflow, mais je n'ai pas été capable de trouver de résolution pertinente dans ces posts. Mon MainActivity commence une nouvelle activité (SecondActivity) avec startActivityForResult (); SecondActivity renvoie ensuite certaines données avec onBackPressed (); et putExtra ();

Extrait de 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) {   

         }
      }

}

Extrait de 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();
    }

}

Logcat:

Logcat

13
timeshift117

Essaye ça-

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) 
         {   

         }
      }
}
17
amit singh

Le problème avec moi, c’est que j’ai utilisé getIntent () , ce qui a permis d’obtenir l’intention de l’activité en cours. 

Quand je suis passé à data.getStringExtra () cela a fonctionné. Erreur amateur ...

1
gigo