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

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

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 17, средняя оценка - 4.71
7xc
0 / 0 / 0
Регистрация: 26.02.2012
Сообщений: 3
#1

Сохранить "положение" checkbox'a - Программирование Android

26.02.2012, 21:18. Просмотров 2272. Ответов 7
Метки нет (Все метки)

Добрый вечер ! У меня возникла трудность с сохранением чекбоксов, в том положении, как они были нажаты при переключении на другую активность(будь то возвращение назад или домой). У меня в опроснике имеется мой кастомный ListView, где на каждой строке рядом с вопросом стоит чекбокс.

сам вид

XML
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
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout android:id="@+id/LinearLayout01"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
xmlns:android="http://schemas.android.com/apk/res/android"
>
 
 
 
 
<LinearLayout
        android:orientation="vertical"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:layout_weight="1"
        android:padding="2dp">
    
    <TextView 
        android:id="@+id/textView_large"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        
        android:textSize="15sp">
    </TextView>
    <TextView 
        android:id="@+id/textView_small"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:textSize="12sp">
    </TextView>
    </LinearLayout>
 
 
    <LinearLayout
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:gravity="right"
        android:padding="2dp" >
 
        <CheckBox
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:id="@+id/checkBxc">
            
        </CheckBox>
    </LinearLayout>
</LinearLayout>
и Java код

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
public class Main extends ListActivity {
    /** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
        
        setListAdapter(new MyAdapter(this,
                android.R.layout.simple_list_item_2, R.id.textView_large,
                getResources().getStringArray(R.array.questions)));
        
 
    }
    
    
    private class MyAdapter extends ArrayAdapter<String> {
 
        public MyAdapter(Context context, int resource, int textViewResourceId,
                String[] strings) {
            super(context, resource, textViewResourceId, strings);
        }
        
        @Override
        public View getView(int position, View convertView, ViewGroup parent) {
            LayoutInflater inflater = (LayoutInflater) getSystemService(Context.LAYOUT_INFLATER_SERVICE);
            View row = inflater.inflate(R.layout.list_item, parent, false);
            String[] items = getResources().getStringArray(R.array.questions);
            String[] itemsSmall = getResources().getStringArray(R.array.questions_small);
            CheckBox chk = (CheckBox) row.findViewById(R.id.checkBxc);
            TextView txtLarge = (TextView) row.findViewById(R.id.textView_large);
            
            TextView txtSmall = (TextView) row.findViewById(R.id.textView_small);
            
            txtLarge.setText(items[position]);
            txtSmall.setText(itemsSmall[position]);
            return row;
        
        
    }
}
}
Как сохранить выделенные боксы, если я захочу перейти на другую активность?
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
26.02.2012, 21:18     Сохранить "положение" checkbox'a
Посмотрите здесь:

Как сохранить данные при свертывании аппаратной кнопкой "Back"? - Программирование Android
Здравствуйте. Подскажите пожалуйста, как сохранить данные при нажатии аппаратной кнопки back в главном активити? Мне бы в идеале хотелось...

Как сохранить состояние выделенных checkbox и list data в Listactivity? - Программирование Android
Здравствуйте. Было задание сделать ListView c CheckBox, при нажатии на кнопку Add добавляется случайное число в ListActivity. Если выделить...

Осуществить парсинг JSON с помощью готового макета "VKApiMessage" - Программирование Android
Я никак не могу осуществить парсинг JSON с помощью готового макета &quot;VKApiMessage&quot;. Пример JSON: https://vk.com/dev/messages.getDialogs...

Услуга - "поругайте мой код" есть тут такая?) - Программирование Android
собственно сабж :) Если кому нибудь из гуру не лень посмотреть и указать на явные ошибки в коде - буду признателен

Notification вывод строки с символами перехода на новую строку "\n" - Программирование Android
Здравствуйте, пишу приложение для android 4. В нем service выводит notification в котором текст - это String c несколькими символами...

EditText и добавление символов в него через собственную "клавиатуру" - Программирование Android
Ребятушки привет! я начинающий андроид девелопер....и столкнулся с такой трудностью.. Пишу калькулятор, у меня есть EditText и 10...

Unexpected namespace prefix "map" found for tag fragment - Программирование Android
Но почему там, где map, у меня ошибки??? &lt;fragment xmlns:android=&quot;http://schemas.android.com/apk/res/android&quot; ...

После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
NiRamz
211 / 211 / 16
Регистрация: 26.12.2010
Сообщений: 691
27.02.2012, 15:12     Сохранить "положение" checkbox'a #2
сохранить что бы по возврату(перезагрузке приложения) вернуть на место значения или что бы передать значения на другую активити?
7xc
0 / 0 / 0
Регистрация: 26.02.2012
Сообщений: 3
27.02.2012, 17:46  [ТС]     Сохранить "положение" checkbox'a #3
Цитата Сообщение от NiRamz Посмотреть сообщение
сохранить что бы по возврату(перезагрузке приложения) вернуть на место значения или что бы передать значения на другую активити?
По возврату(перезагрузке приложения). Чтобы, если юзер кликнул return кнопку, или переключился с вопросов группы А на вопросы группы Б, положение чекбоксов было сохранено.
NiRamz
211 / 211 / 16
Регистрация: 26.12.2010
Сообщений: 691
27.02.2012, 18:19     Сохранить "положение" checkbox'a #4
в сторону SharedPreferences посмотрите.
7xc
0 / 0 / 0
Регистрация: 26.02.2012
Сообщений: 3
27.02.2012, 18:28  [ТС]     Сохранить "положение" checkbox'a #5
Да в том то и дело, что ни перегрузка onSaveInstanceState и onRestoreInstanceState, ни shared preferences не работают..

Может я конечно что не так прописываю, вот методы из реализации, что я пробовал:
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
    @Override
    protected void onSaveInstanceState(Bundle outState) {
        
        outState.putBoolean("MyBoolean", true);
          super.onSaveInstanceState(outState);
    }
    
    @Override
    protected void onRestoreInstanceState(Bundle state) {
        
        super.onRestoreInstanceState(state);
          boolean myBoolean = state.getBoolean("MyBoolean");
 
    }
и из onCreate()
Java
1
2
SharedPreferences settings = getSharedPreferences(PREFS_NAME, 0);
        boolean silent = settings.getBoolean("silentMode", false);
+
Java
1
2
3
4
5
6
7
8
9
10
11
12
@Override
    protected void onStop() {
        
        super.onStop();
        
        SharedPreferences settings = getSharedPreferences(PREFS_NAME, 0);
        SharedPreferences.Editor editor = settings.edit();
        editor.putBoolean("silentMode", true);
 
        // Commit the edits!
        editor.commit();
    }
Не знаю, играет какую-либо роль ListView здесь. Учитывая что у меня на каждой строке по чекбоксу, может луп какой надо или что.. 2й день пытаюсь заставить сохранять и ни в какую =/
cxemuch205
1 / 1 / 1
Регистрация: 31.10.2012
Сообщений: 46
02.05.2013, 03:22     Сохранить "положение" checkbox'a #6
Тоже столкнулся с этой проблемой ищу ответ..
Vladimirys
304 / 201 / 22
Регистрация: 16.01.2010
Сообщений: 570
02.05.2013, 08:33     Сохранить "положение" checkbox'a #7
Пробуйте сохранять в onPause. Потому как onStop может и не вызываться.

Java
1
2
3
4
5
6
7
protected void onPause(){
        super.onPause();
 
        SharedPreferences settings = getSharedPreferences(PREFS_NAME,0);
        SharedPreferences.Editor editor = settings.edit();
        ......................
    }
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
07.05.2013, 13:48     Сохранить "положение" checkbox'a
Еще ссылки по теме:

Отключить перескакивание между edittext после нажатия "готово" - Программирование Android
После нажатия на кнопку готово происходит заполнение второго edittext, третьего и.т.д. А нужно чтобы пользователь сам нажимал на нужные для...

ImageView в активити, можно ли сделать масштабирование "пальцами"? - Программирование Android
Можно ли сделать чтоб ImageView (с номинальным размером на весь экран) в активити, масштабировалось(больше/меньше) &quot;пальцами&quot; ? ...

"Нарисовать" массив, используя Canvas и графические примитивы - Программирование Android
Имеется двумерный массив состоящий из нулей и единиц, где нуль должен отображаться как квадрат. Вопрос в том, как все-таки &quot;нарисовать&quot;...

Кириллица отображается в виде знаков "закорючек в ромбе" - Программирование Android
Если конкретно то вопрос в ромбе. Только кириллица , латиница отображается норм , я понимаю кодировки , но искал пол дня по всему инету -...

Реализация кнопок "Поделиться в соцсетях" в Android приложении - Программирование Android
Есть приложение локально загружающее html страничку и которая показывает текст html страницы в webview. Как сделать кнопку Поделиться...


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

Или воспользуйтесь поиском по форуму:
cxemuch205
1 / 1 / 1
Регистрация: 31.10.2012
Сообщений: 46
07.05.2013, 13:48     Сохранить "положение" checkbox'a #8
Вот рабочий код, chekbox там тоже есть
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
package ua.android.testandro;
 
import android.os.Bundle;
import android.app.Activity;
import android.content.Context;
import android.content.SharedPreferences;
import android.view.Menu;
import android.widget.CheckBox;
import android.widget.EditText;
import android.widget.ToggleButton;
 
public class SecondActivity extends Activity {
    
    public EditText getsTest;
    public ToggleButton togBut;
    public CheckBox chBox;
    public SharedPreferences mSet;
    public static final String DATA_SEND = "username";
    public static final String NAME_PREFERENCES = "mysetting";
    public static final String BOOL_TOGGLE = "togglebuton";
    public static final String BOOL_CHECKBOX = "checkboxset";
 
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_second);
        mSet = getSharedPreferences(NAME_PREFERENCES, Context.MODE_PRIVATE);
        
        String user = "Name";
        user = getIntent().getStringExtra(DATA_SEND);
        getsTest = (EditText)findViewById(R.id.editTextGets);
        togBut = (ToggleButton)findViewById(R.id.toggleButton1);
        chBox = (CheckBox)findViewById(R.id.checkBox1);
        getsTest.setText(user); 
        if(mSet.contains(DATA_SEND)){getsTest.setText(mSet.getString(DATA_SEND, ""));}
        if(mSet.contains(BOOL_TOGGLE)){togBut.setChecked(mSet.getBoolean(BOOL_TOGGLE, false));}
        if(mSet.contains(BOOL_CHECKBOX)){chBox.setChecked(mSet.getBoolean(BOOL_CHECKBOX, false));} //Загрузка последнего сохраненного значения чекбокса, если последнего нет то ставится false
    }
 
    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
        // Inflate the menu; this adds items to the action bar if it is present.
        getMenuInflater().inflate(R.menu.second, menu);
        return true;
    }
    
    @Override
    protected void onStop()
    {
        super.onStop();
        //SharedPreferences mSet;
        mSet = getSharedPreferences(NAME_PREFERENCES, Context.MODE_PRIVATE);
        SharedPreferences.Editor editor = mSet.edit();
        editor.putString(DATA_SEND, getsTest.getText().toString());
        editor.putBoolean(BOOL_TOGGLE, togBut.isChecked()); 
        editor.putBoolean(BOOL_CHECKBOX, chBox.isChecked()); //Чекбокс сохранение значения при выходе из приложения-/-активности
        editor.commit();
    }
 
}
Yandex
Объявления
07.05.2013, 13:48     Сохранить "положение" checkbox'a
Ответ Создать тему
Опции темы

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