2017-03-22 2 views
0

Hier erhalten ist der Code aus dem MainActivity, die die Absicht nennt:einen Null-Vorsatz mit onActivityResult

fab.setOnClickListener(new View.OnClickListener() { 
     @Override 
     public void onClick(View view) { 
      Intent intent = new Intent(MainActivity.this, NewNote.class); 
      startActivityForResult(intent, REQUEST_CODE); 

     } 
    }); 

Es geht dann auf die NewNote Klasse, die dies tut, mit der Absicht:

Intent intent = new Intent(); 
       intent.putExtra("title", title.getText().toString()); 

       //set the result, it will be passed to onActivityResult() in MainActivity 
       setResult(RESULT_OK, intent); 
       finish(); 

Schließlich innerhalb des MainActivity habe ich die onActivityResult Methode:

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

    if (resultCode == RESULT_OK) { 
     Bundle extras = getIntent().getExtras(); 
     if (extras != null) { 
      String value = extras.getString("title"); 
      //The key argument here must match that used in the other activity 
      Toast.makeText(this, "" + value, Toast.LENGTH_SHORT).show(); 
     } 
    } 
} 

Wenn ich die app laufen, die OnActivit Die yResult-Methode funktioniert einwandfrei, die Ausgabe durch die value-Variable ist jedoch immer null.

Antwort

0

Wechsel:

Bundle extras = getIntent().getExtras(); 

An:

Bundle extras = data.getExtras(); 

Hoffe, es hilft.

+0

Ich habe versucht, das stundenlang herauszufinden, haha. Ich werde auf das Häkchen klicken, sobald es mich lässt. – Alex