OnButton Нажмите кнопку Поделиться настройками

Ниже мой код:

    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?

2 ответа

Решение

Вы делаете неправильно, что используете одну и ту же ссылку для обоих общих предпочтений.

Да, вы можете использовать два общих предпочтения одним нажатием кнопки.

Создайте два общих объекта предпочтений.

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 должен быть таким же с именем ""

Другие вопросы по тегам