Форум программистов, компьютерный форум, киберфорум
Наши страницы
Программирование Android
Войти
Регистрация
Восстановить пароль
 
Nikolarsen
3 / 3 / 1
Регистрация: 17.12.2016
Сообщений: 210
1

Сохранить значения Spinner в SharedPreferences

16.02.2018, 18:36. Просмотров 240. Ответов 13
Метки нет (Все метки)

Добавляю элементы списка (текст) в spinner через edittext в alertdialog
Нужно чтобы этот список сохранялся и после перезапуска приложения
Как сохранить в SharedPreferences...?

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
51
52
53
54
55
56
57
58
59
60
61
62
63
64
ArrayList<String> spinadPn = new ArrayList<>();
    EditText editText;
    ArrayAdapter<String> adapter;
    Spinner spinner;
 
    //Инициализируем элементы:
        button = (Button) findViewById(R.id.prom);
        
        spinner = (Spinner) findViewById(R.id.spinPn);
    
        //final_text = (TextView) findViewById(R.id.final_text);
 
        //Добавляем слушателя нажатий по кнопке Button:
        button.setOnClickListener(new OnClickListener() {
                @Override
                public void onClick(View arg0) {
 
                    //Получаем вид с файла prompt.xml, который применим для диалогового окна:
                    LayoutInflater li = LayoutInflater.from(context);
                    View promptsView = li.inflate(R.layout.prompt, null);
 
                    //Создаем AlertDialog
                    AlertDialog.Builder mDialogBuilder = new AlertDialog.Builder(context);
 
                    //Настраиваем prompt.xml для нашего AlertDialog:
                    mDialogBuilder.setView(promptsView);
 
                    //Настраиваем отображение поля для ввода текста в открытом диалоге:
                    final EditText userInput = (EditText) promptsView.findViewById(R.id.input_text);
 
                    //Настраиваем сообщение в диалоговом окне:
                    mDialogBuilder
                        .setCancelable(false)
                        .setPositiveButton("OK",
                        new DialogInterface.OnClickListener() {
                            public void onClick(DialogInterface dialog,int id) {
                                //Вводим текст и отображаем в спинер на основном экране:
                                
                                // Создаем адаптер ArrayAdapter с помощью массива строк и стандартной разметки элемета spinner
                                adapter = new ArrayAdapter<String>(MainActivity. this, android.R.layout.simple_spinner_item, spinadPn);
                                // Определяем разметку для использования при выборе элемента
                                adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
                                // Применяем адаптер к элементу spinner
                            
                                spinadPn.add(userInput.getText().toString());
                                adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
                                spinner.setAdapter(adapter);
                                
                                
                            }
                        })
                        .setNegativeButton("Отмена",
                        new DialogInterface.OnClickListener() {
                            public void onClick(DialogInterface dialog,int id) {
                                dialog.cancel();
                            }
                        });
 
                    //Создаем AlertDialog:
                    AlertDialog alertDialog = mDialogBuilder.create();
                    //и отображаем его:
                    alertDialog.show();
                }
            });
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
16.02.2018, 18:36
Ответы с готовыми решениями:

SharedPreferences сохранить на флешку
Гуру, САБЖ! Есть ли СТАНДАРТНОЕ решение для подобного? Хочу сохранять...

Можно ли ArrayList с числами сохранить в SharedPreferences?
Ребят, у меня есть ArrayList с 12 числами, как его можно сохранить...

Как сохранить динамически созданные edittext в SharedPreferences
Подскажите пожалуйста, как сохранить данные в созданных edittext . ...

При повторном запуске приложения не загружаются сохраненные значения SharedPreferences
Всем привет. сразу пишу, что андроид начал изучать недавно. В общем, в...

Выбор значения по умолчанию в spinner
Здравствуйте!!! Есть spinner с набором данных из базы. как мне выбрать сделать...

13
ExFau$t
568 / 512 / 115
Регистрация: 08.05.2012
Сообщений: 2,549
16.02.2018, 18:49 2
Сохранить все значения листа spinadPn, в чём вопрос то?
0
Nikolarsen
3 / 3 / 1
Регистрация: 17.12.2016
Сообщений: 210
16.02.2018, 18:56  [ТС] 3
ExFau$t, можно пару строчек кода с пояснением чтоб понятней было?
0
ExFau$t
568 / 512 / 115
Регистрация: 08.05.2012
Сообщений: 2,549
16.02.2018, 19:11 4
http://developer.alexanderklimov.ru/...references.php
0
Nikolarsen
3 / 3 / 1
Регистрация: 17.12.2016
Сообщений: 210
17.02.2018, 00:20  [ТС] 5
ExFau$t, толком ничего так и не понял...
Правильно ли сохраняю...?

Java
1
2
3
4
5
Set<String> list = new HashSet<String>();
                                list.add(userInput.getText().toString());                       
                                Editor e = mSettings.edit();
                                e.putStringSet("strSetKey", list);
                                e.apply();
Как выводить при запуске вообще не понял...

Добавлено через 1 час 33 минуты
Может поможет кто ??? Пожалуйста..... Никак не пойму...

Добавлено через 27 минут
Здесь нашёл ответ....

Добавлено через 1 час 30 минут
Ещё один момент....
Обработка нажатий...
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
// устанавливаем обработчик нажатия
        spinner.setOnItemSelectedListener(new OnItemSelectedListener() {
                @Override
                public void onItemSelected(AdapterView<?> parent, View view,
                                           int position, long id) {
                    // показываем позиция нажатого элемента
                    
                    Toast.makeText(getBaseContext(), "Position = " + position, Toast.LENGTH_SHORT).show();
                }
                @Override
                public void onNothingSelected(AdapterView<?> arg0) {
                }
            });
Код показывает позицию элемента по нажатию . Проблема в том, что при запуске сразу показывает сообщение, хотя ничего не нажимал.. почему?
0
ExFau$t
568 / 512 / 115
Регистрация: 08.05.2012
Сообщений: 2,549
17.02.2018, 00:23 6
Он показывает не нажатый элемент, а выбранный, что следует из названия метода.
0
Nikolarsen
3 / 3 / 1
Регистрация: 17.12.2016
Сообщений: 210
17.02.2018, 09:06  [ТС] 7
ExFau$t, а как вообще можно удалять элементы из spinner... ??
Как обрабатывать нажатия чтобы при запуске первый элемент не вылезал...
0
ExFau$t
568 / 512 / 115
Регистрация: 08.05.2012
Сообщений: 2,549
17.02.2018, 09:53 8
http://developer.alexanderklimov.ru/....php#emptyitem
0
Nikolarsen
3 / 3 / 1
Регистрация: 17.12.2016
Сообщений: 210
17.02.2018, 19:51  [ТС] 9
ExFau$t, там CustomAdapter а у меня ArrayAdapter.....
0
ExFau$t
568 / 512 / 115
Регистрация: 08.05.2012
Сообщений: 2,549
17.02.2018, 22:53 10
И в чём проблема?
0
Nikolarsen
3 / 3 / 1
Регистрация: 17.12.2016
Сообщений: 210
17.02.2018, 23:17  [ТС] 11
ExFau$t, проблема в том что элемент spinner должен удаляться при нажатии на него. Я уже всё сделал, но при каждом запуске выполняется код для первого элемента и он удаляется. При запуске со spinner не должно ничего происходить...

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
spinner.post(new Runnable() {
                @Override
                public void run() {
                    spinner.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {
                            @Override
                            public void onItemSelected(AdapterView<?> parent, View view, int position, long id) {
                                //spinadPn.add((spinner.getSelectedItem().toString()));
                                Toast toast = Toast.makeText(getApplicationContext(), 
                                                             spinner.getSelectedItemPosition() + "Элемент удален",Toast.LENGTH_SHORT); 
                                toast.show(); 
                                
                                spinadPn.remove(position);
                                
                                String listStr = TextUtils.join(",", spinadPn);
                                SharedPreferences.Editor editor = getSharedPreferences("PREFS_NAME", MODE_PRIVATE).edit();
                                editor.putString("MY_LIST", listStr).apply();       
                            }
 
                            @Override
                            public void onNothingSelected(AdapterView<?> parent) {
                                spinadPn.add("");
                            }
                        });
                }
            });
0
ExFau$t
568 / 512 / 115
Регистрация: 08.05.2012
Сообщений: 2,549
17.02.2018, 23:37 12
Либо делать адаптер, либо ввести переменную для проверки первого запуска.
0
Nikolarsen
3 / 3 / 1
Регистрация: 17.12.2016
Сообщений: 210
17.02.2018, 23:50  [ТС] 13
ExFau$t, По поводу первого запуска не понял... При последующих то всё равно удалится первый элемент...
0
ExFau$t
568 / 512 / 115
Регистрация: 08.05.2012
Сообщений: 2,549
18.02.2018, 00:10 14
Тогда я пас.
0
18.02.2018, 00:10
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
18.02.2018, 00:10

При смене значения Spinner перелистывается экран
Доброго времени суток, похоже вопрос глупый, но ответа на него не нашёл....

SharedPreferences
как сохранить целое значение в SharedPreferences?

SharedPreferences
Можно как-то сохранить SharedPreferences файл после перезагрузки девайса? ...


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

Или воспользуйтесь поиском по форуму:
14
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru