Android 自动显示GetSharedReferences

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

*请帮忙**

我试图在我的应用程序中显示SharedReferences,但当我打开应用程序时,数据被删除,我按下按钮再次显示。 我有一个按钮来保存数据和其他显示数据,我试图删除按钮“显示数据”并自动显示

这是密码

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的多样性。