我想将 EditText
(位于 AlertDialog
)字段的值存储在 SharedPreference
中。它在 SharedPreferences.Editor editor = sp.edit();
这行显示 NullPointerException
**注意:代码在没有 SharedPreferences 的情况下工作 **
private void myDialog() {
// TODO Auto-generated method stub
LayoutInflater inflater = LayoutInflater.from(getApplicationContext());
View view = inflater.inflate(R.layout.cus_dialog, null);
AlertDialog.Builder ab = new AlertDialog.Builder(this);
ab.setView(view);
final EditText input = (EditText) view.findViewById(R.id.etValue);
ab.setCancelable(false);
ab.setPositiveButton("Send", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
String s = input.getText().toString();
SharedPreferences.Editor editor = sp.edit();
editor.putString("A", s);
editor.commit();
Toast.makeText(getApplicationContext(), "" + s,
Toast.LENGTH_SHORT).show();
}
});
ab.setNegativeButton("Cancel", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
// TODO Auto-generated method stub
dialog.cancel();
}
});
AlertDialog ad = ab.create();
ad.show();
}
最佳答案
SharedPreferences preferences = PreferenceManager
.getDefaultSharedPreferences(acivity.this);
SharedPreferences.Editor editor = preferences.edit();
editor.putString("a", "a");
editor.commit();
关于android - 自定义警报对话框中的共享首选项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15676802/