使用共享首选项保存警报对话框的值

时间:2018-12-25 13:19:39

标签: android

如何保存和查看“警报对话框”的“编辑文本”字段的用户输入值。 我已经使用共享首选项保存了该值,但是当第二次警报对话框加载未出现时。

使用共享的首选项保存值

alertDialog1.setButton(AlertDialog.BUTTON_NEUTRAL, "SEND", new DialogInterface.OnClickListener() {
        @Override
        public void onClick(DialogInterface dialog, int which) {
      //  alertDialog1.dismiss();
            //formatted url
            String sendURL = agentName.getText().toString();
            String name = nameURl.concat(sendURL).concat(nameUR2);
            agentName.setText(name);
           // setURLNANME(name);

            SharedPreferences sharedPreferences;
            EditText nm;
            String NAME = "namekkey";
            String myPreferences = null;

            nm = findViewById(R.id.input_agentname);
            sharedPreferences = getSharedPreferences(myPreferences,Context.MODE_PRIVATE);

            if (sharedPreferences.contains(NAME)){
                nm.setText(sharedPreferences.getString(NAME,""));
            }


        }
    });

    alertDialog1.setButton(AlertDialog.BUTTON_NEGATIVE, "CANCEL", new DialogInterface.OnClickListener() {
        @Override
        public void onClick(DialogInterface dialog, int which) {
            alertDialog1.dismiss();
        }
    });
    alertDialog1.show();
}

一次用户键入名称并在用户查看警报对话框时一次又一次发送想要查看的值。

2 个答案:

答案 0 :(得分:0)

首先,您需要从SharedPreferences中检索名称:

sharedPreferences = getSharedPreferences(myPreferences,Context.MODE_PRIVATE);
String name = sharedPreferences.getString(NAME,"");

然后在显示对话框之前,用值设置textview的文本:

nm.setText(name);

答案 1 :(得分:0)

您没有编写任何代码以共享首选项存储数据。 您可以在dismiss方法之前编写该代码。

alertDialog1.setButton(AlertDialog.BUTTON_NEGATIVE, "CANCEL", new 
DialogInterface.OnClickListener() {
    @Override
    public void onClick(DialogInterface dialog, int which) {
       SharedPreferences.Editor editor = preferences.edit();
      editor.putString(Name,nm.getText().toString());
      editor.apply();
      alertDialog1.dismiss();
    }
});