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:
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)
{
}
}
}
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 ...