在按钮上单击共享首选项

OnButton Click Share Preferences

下面是我的代码:

    public void OnAttendLogin(View view) {
    sp = getSharedPreferences("attendlogin", MODE_PRIVATE);
    String emp_id = sp.getString("emp_id", null);
    InTImeWorker inTImeWorker = new InTImeWorker(this);
    inTImeWorker.delegate = (AsyncResponse) this;
    inTImeWorker.execute(emp_id);

    //shared pref for saving In_time in textview
    sp = getSharedPreferences("InTime", MODE_PRIVATE);
    SharedPreferences.Editor editor = sp.edit();
    String in_time_sharedpref = In_time.getText().toString();
    editor.putString("in_time_sp", in_time_sharedpref);
    editor.apply();
    editor.commit();
    out_time_button.setEnabled(true);
    in_time_button.setEnabled(false);
}

我想知道我在代码中做错了什么? 我如何在 android studio 中使用两个共享首选项??

你对两个共享偏好使用相同的引用是错误的。

是的,您可以一键使用两个共享的Preference

创建两个共享的 Preference 对象。

SharedPreferences sp;
SharedPreferences sp2;
SharedPreferences.Editor editorSp ;
SharedPreferences.Editor editorSp2 ;

sp = getSharedPreferences("attendlogin", MODE_PRIVATE);
sp2 = getSharedPreferences("InTime", MODE_PRIVATE);

最终代码如下:

public void OnAttendLogin(View view) {
    sp = getSharedPreferences("attendlogin", MODE_PRIVATE);
    String emp_id = sp.getString("emp_id", null);
    InTImeWorker inTImeWorker = new InTImeWorker(this);
    inTImeWorker.delegate = (AsyncResponse) this;
    inTImeWorker.execute(emp_id);

    //shared pref for saving In_time in textview
    sp2 = getSharedPreferences("InTime", MODE_PRIVATE);
    SharedPreferences.Editor editor = sp2.edit();
    String in_time_sharedpref = In_time.getText().toString();
    editorsp2.putString("in_time_sp", in_time_sharedpref);
    editorsp2.apply();
    editorsp2.commit();
    out_time_button.setEnabled(true);
    in_time_button.setEnabled(false);
}

使用一个共享首选项名称

"sp = getSharedPreference("attendlogin",MODE_PRIVATE);"

并使用不同的变量来保存数据

示例:

SharedPreferences.Editor editor = sp.edit();
String in_time_sharedpref = In_time.getText().toString();
editor.putString("in_time_sp", in_time_sharedpref);
editor.apply();
String emp_id = sp.getString("emp_id", null);

sp 应与名称“”

相同