Форум программистов, компьютерный форум CyberForum.ru

Программирование Android

Войти
Регистрация
Восстановить пароль
 
Stetsura
0 / 0 / 0
Регистрация: 11.11.2012
Сообщений: 44
#1

SharedPreferences для нескольких классов - Android

31.05.2015, 13:08. Просмотров 380. Ответов 1
Метки нет (Все метки)

Задача следующая: один класс отвечает за настройки, конкретно 2 элемента Checkbox "Отображать кнопку 1" и "Отображать кнопку 2". Второй класс должен отображать или не отображать эти кнопки в зависимости от того, в каком положении находятся Checkbox элементы. Также нужно запоминать выбор Checkbox элементов при закрытии приложения. Пытаюсь сделать это так:

Первый класс:

Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
public class MainActivity extends Activity{
 
    Button openNewActivityButton;
    CheckBox checkbox1, checkbox2;
    public static final String PREFERENCES_FILE = "mysettings"; 
    public static final String IS_BUTTON1_VISIBLE = "0";
    public static final String IS_BUTTON2_VISIBLE = "0";
    private SharedPreferences mySettings;
    Boolean isButton1Visible, isButton2Visible;
        
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        openNewActivityButton = (Button)findViewById(R.id.openNewActivity);
        checkbox1 = (CheckBox)findViewById(R.id.checkBox1);
        checkbox2 = (CheckBox)findViewById(R.id.checkBox2);
        mySettings = getSharedPreferences(PREFERENCES_FILE, Context.MODE_PRIVATE);
    }
 
    public void onButtonClick(View view){
        Intent openNewActivityIntent = new Intent(this, NewActivity.class);
        startActivity(openNewActivityIntent);
        checkBoxes();
    }
    
    public void checkBoxes(){
        if(checkbox1.isChecked()) {
            isButton1Visible = true;
        }
        else {
            isButton1Visible = false;
        }
        if(checkbox2.isChecked()){
            isButton2Visible = true;
        }
        else{
            isButton2Visible = false;
        }
    }
    
    @Override
    protected void onPause() {
        super.onPause();
        SharedPreferences.Editor editor = mySettings.edit();
        editor.putBoolean(IS_BUTTON1_VISIBLE, isButton1Visible);
        editor.putBoolean(IS_BUTTON2_VISIBLE, isButton2Visible);
        editor.apply();
    }
}
Второй класс:
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
public class NewActivity extends Activity{
 
    Button button1, button2;
    String PREFERENCES_FILE = "mysettings";
    String IS_BUTTON1_VISIBLE;
    private SharedPreferences mySettings;
    Boolean isButton1Visible, isButton2Visible;
    
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_new);
        button1 = (Button)findViewById(R.id.button1);
        button2 = (Button)findViewById(R.id.button2);
        mySettings = getSharedPreferences(PREFERENCES_FILE, Context.MODE_PRIVATE);
        
        if (mySettings.contains(IS_BUTTON1_VISIBLE)){
            isButton1Visible = mySettings.getBoolean(IS_BUTTON1_VISIBLE, isButton1Visible);
        }
        
        if(isButton1Visible = true){
            button1.setVisibility(View.VISIBLE);
        }
        else{
            button1.setVisibility(View.INVISIBLE);
        }
    }
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
31.05.2015, 13:08     SharedPreferences для нескольких классов
Посмотрите здесь:

SharedPreferences Android
Android SharedPreferences
Android SharedPreferences putString и getString
Android Array в SharedPreferences
SharedPreferences Android
SharedPreferences Android
Android SharedPreferences
В геттере не работает SharedPreferences Android
Android SharedPreferences
SharedPreferences ArrayList<String> Android
Android SharedPreferences, HashMap
Сохранение в SharedPreferences Android

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Mikalai
253 / 229 / 92
Регистрация: 11.01.2015
Сообщений: 648
31.05.2015, 13:47     SharedPreferences для нескольких классов #2
Вот тут почитай и станет понятнее.
Yandex
Объявления
31.05.2015, 13:47     SharedPreferences для нескольких классов
Ответ Создать тему
Опции темы

Текущее время: 22:52. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru