Android множественный список выбора SQLite - PullRequest
0 голосов
/ 02 июня 2011

Как я могу сохранить информацию из списка с множественным выбором в базу данных? Я хочу сохранить статус элемента из списка. Например, если я проверил 2 пункта, я хочу сохранить этот статус в базе данных.

Спасибо

1 Ответ

0 голосов
/ 02 июня 2011

Конечно Фегол,

Полагаю, вы уже настроили просмотр списка с множественным выбором. (если нет, пожалуйста, проверьте онлайн, есть ли их кучи http://www.androidpeople.com/android-listview-multiple-choice-example).

Здесь я хотел бы дать вам несколько советов по проблеме сохранения данных.

По сути, есть два общих варианта. Первый должен использовать getCheckedItemIds () или getCheckedItemPositions () в вашем списке (http://developer.android.com/reference/android/widget/AbsListView.html#getCheckedItemIds()).

)

Второй , который является более гибким, заключается в написании специального адаптера. Вы можете использовать isChecked (), чтобы проверить, был ли установлен флажок, а затем сохранить статус в вашей хэш-карте. Тогда вы можете получить все статусы флажков в последний раз.

Я поместил некоторый псевдокод для второго подхода для вас. Надеюсь, это поможет.

    ArrayList<Boolean> checkList = new ArrayList<Boolean>();
    // TODO: put some empty data into checkList  



    private OnItemClickListener myListItemClickListener = new ListView.OnItemClickListener() {
        @Override
        public void onItemClick(AdapterView<?> arg0, View v, int position, long id) {


        if(checkList.get(position)){
            checkList.set(position, false);
        }else{
            checkList.set(position, true);
        }

        ((mAdapter)mList.getAdapter()).notifyDataSetChanged();

        }
    }



    class mAdapter extends BaseAdapter{

        @Override
        public View getView(int position, View convertView, ViewGroup parent) {

            if (checkList.get(position)){
                checkBox.setChecked(true);
            }else{
                checkBox.setChecked(false);
            }
        }
    }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...