Android - 在对话框关闭侦听器时更新 TextView

Android - Update TextView on dialog dimiss listener

我显示了一个对话框,用户可以在其中在编辑文本中输入一个字符串值,我想在关闭该对话框后在主布局的文本视图中显示该值。当用户单击对话框的按钮 "Ok" 时,textview 会很好地刷新,但我试图从对话框上的 dismiss 侦听器中执行相同的操作,但事实并非如此,但我知道其余代码是运行。我试图在主线程上使它成为 运行 但它并没有解决问题。这是代码,感谢您的帮助。

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

因为您在提交之前试图从共享首选项中获取值。 如果你不提交,它就不会保存。