2016-06-02 11 views
0

Ich zeige ein Dialogfeld, wo der Benutzer einen String-Wert in einem Editiertext eingeben kann und ich möchte diesen Wert in einer Textansicht im Hauptlayout anzeigen, nachdem das Dialogfeld geschlossen ist. Wenn der Benutzer auf die Schaltfläche "Ok" des Dialogfelds klickt, wird die Textansicht gut aktualisiert, aber ich habe versucht, das Gleiche über den Ablehnungslistener im Dialogfeld zu tun, aber ich weiß, dass der Rest des Codes ausgeführt wird. Ich habe versucht, es auf dem Hauptfaden laufen zu lassen, aber es hat das Problem nicht gelöst. Hier ist der Code, danke für deine Hilfe.Android - Update TextView auf Dialog Dimiss Listener

final Dialog dialogStatus = new Dialog(Activity.this); 
    dialogStatus.setContentView(R.layout.dialog_layout); 

    Button Bok = (Button) dialogStatus.findViewById(R.id.bt_dialog_ok); 
    final EditText ETname = (EditText) dialogStatus.findViewById(R.id.et_dialog); 

    Bok.setOnClickListener(new View.OnClickListener() { 
     @Override 
     public void onClick(View v) { 
      update(String.valueOf(ETname.getText())); 
      dialogStatus.dismiss(); 
     } 
    }); 
    dialogStatus.setOnDismissListener(new DialogInterface.OnDismissListener() { 

     @Override 
     public void onDismiss(DialogInterface dialog) { 
      // TODO Auto-generated method stub 
      activity.runOnUiThread(new Runnable() { 
       @Override 
       public void run() { 
        update(String.valueOf(ETname.getText())); 
       } 
      }); 
     } 
    }); 
    dialogStatus.show(); 
} 

public void update(String etValue){ 
    final SharedPreferences sharedPrefUnit = getSharedPreferences(SHARED_PREFS, 0); 
    SharedPreferences.Editor settings = getSharedPreferences(SHARED_PREFS, MODE_PRIVATE).edit(); 
      settings.putString(STRING_VALUE, etValue); 
      TextView.setText(sharedPrefUnitScore.getString(STRING_VALUE, etValue, "")); 

    settings.commit(); 
} 

Antwort

0
public void update(String etValue){ 
    final SharedPreferences sharedPrefUnit = getSharedPreferences(SHARED_PREFS, 0); 
    SharedPreferences.Editor settings = getSharedPreferences(SHARED_PREFS, MODE_PRIVATE).edit(); 
    settings.putString(STRING_VALUE, etValue); 
    settings.commit(); 
    TextView.setText(etValue); 
} 

Weil Du, bevor Sie den Wert aus dem gemeinsamen Vorliebe zu bekommen versucht, es zu begehen. Wenn Sie es nicht begehen, wird es nicht speichern.

+0

Es funktioniert! Danke, obwohl ich nicht verstehe warum. – tienow

+0

Bitte geben Sie mir grünes Häkchen, wenn es funktioniert hat. Danke ... :) – Shubham

+0

Danke Es hilft mir wirklich – Shubham