Android 自动显示GetSharedReferences
*请帮忙** 我试图在我的应用程序中显示SharedReferences,但当我打开应用程序时,数据被删除,我按下按钮再次显示。 我有一个按钮来保存数据和其他显示数据,我试图删除按钮“显示数据”并自动显示 这是密码Android 自动显示GetSharedReferences,android,android-studio,sharedpreferences,show,Android,Android Studio,Sharedpreferences,Show,*请帮忙** 我试图在我的应用程序中显示SharedReferences,但当我打开应用程序时,数据被删除,我按下按钮再次显示。 我有一个按钮来保存数据和其他显示数据,我试图删除按钮“显示数据”并自动显示 这是密码 public void savePreference(View view) { SharedPreferences myPreference = getSharedPreferences("MyDate",Context.MODE_ENABLE_WRITE_A
public void savePreference(View view)
{
SharedPreferences myPreference = getSharedPreferences("MyDate",Context.MODE_ENABLE_WRITE_AHEAD_LOGGING);
SharedPreferences.Editor editor = myPreference.edit();
EditText editNombre = (EditText) findViewById(R.id.editnombre);
EditText editApellido = (EditText) findViewById(R.id.editapellido);
EditText editCorreo = (EditText) findViewById(R.id.editcorreo);
EditText editnick = (EditText) findViewById(R.id.editnick);
String nombre = editNombre.getText().toString();
String apellido = editApellido.getText().toString();
String correo = editCorreo.getText().toString();
String nickname = editnick.getText().toString();
editor.putString("nombre",nombre);
editor.putString("apellido",apellido);
editor.putString("correo",correo);
editor.putString("nickname",nickname);
editor.apply();
Toast.makeText(edit_profile_activity.this,"Se han agregado datos correctamente",Toast.LENGTH_SHORT).show();
}
public void showPreference (View view)
{
SharedPreferences showmypreference = getSharedPreferences("MyDate",Context.MODE_ENABLE_WRITE_AHEAD_LOGGING);
String nombre = showmypreference.getString("nombre","No existe");
String apellido = showmypreference.getString("apellido","No existe");
String correo = showmypreference.getString("correo","No existe");
String nickname = showmypreference.getString("nickname","No existe");
TextView nametext = (TextView) findViewById(R.id.nametext);
TextView nick = (TextView) findViewById(R.id.nickname);
TextView email = (TextView) findViewById(R.id.editcorreo);
String preferencia = (nombre + apellido);
String shownick = (nickname);
String showemail =(correo);
nametext.setText(preferencia);
nick.setText(shownick);
email.setText(showemail);
}
我用你的代码创建了一个应用程序,并创建了一个包含隐含的EditText和TextView对象的布局。您的代码似乎完全按照您的要求执行。保存首选项时,将从4个EditText读取数据并保存在MyDate首选项文件中。恢复首选项后,数据将写入2个文本视图(nametext和昵称)和一个EditText(editcorreo)。其他EditText将按照默认的onRestoreInstanceState还原为其当前内容,或者将初始化为初始化时放入其中的布局或onCreate 如果试图将数据还原到应用程序退出时的EditText视图中,则showPreference方法应获取对EditText视图的引用,并对每个视图调用setText方法
EditText editNombre = (EditText) findViewById(R.id.editnombre);
EditText editApellido = (EditText) findViewById(R.id.editapellido);
EditText editCorreo = (EditText) findViewById(R.id.editcorreo);
EditText editnick = (EditText) findViewById(R.id.editnick);
editNombre.setText(nombre);
editApellido.setText(apellido);
editCorreo.setText(correo);
editnick.setText(nickname);
此外,您正在将视图传递给这些方法中的每一个,但不在任何一个方法中使用参数。除非您有充分的理由离开它,否则我建议删除View参数。该方法可能与xml中的单击有关。。。这就是为什么视图有一个很好的观点,我通常声明自己的click监听器,而忽略XML的多样性。