ListView с флажками, которые сохраняют данные - PullRequest
0 голосов
/ 14 июля 2011

Мое приложение состоит из 2 действий. Первое действие содержит TextView, если вы щелкнете по нему, вы перейдете ко второму действию, которое состоит из ListView и кнопки Готово. ListView содержит TextViews с CheckBox. Если вы нажмете на кнопку, он завершит работу и вернет выбранный текстовый элемент. Если вы вернетесь к списку, выбранные флажки будут восстановлены.

Код будет приветствоваться.

Ответы [ 2 ]

2 голосов
/ 14 июля 2011

Прежде всего, я предлагаю вам использовать элемент управления CheckedTextView вместо CheckBox & TextView. CheckedTextView служит комбинацией флажка и просмотра текста и прост в обращении и реализации.

Во-вторых, у вас должен быть ArrayList логического значения точного размера, поскольку ListView нет. предметов. Затем вы можете установить элементы ArrayList соответствующим образом в функции OnListItemClick в ListView. В любое время и в любом месте вашего кода вы можете получить ссылку на ваш выбор ListView. Это просто и эффективно.

Вот пример кода OnListItemClick:

@Override
    protected void onListItemClick(ListView l, View v, int position, long id) 
    {       
        arrCheckBox.set(position, !arrCheckBox.get(position));
        CheckedTextView ctvListItem = (CheckedTextView)v.findViewById(R.id.ctvCustomLVRowID);
        ctvListItem.setChecked(arrCheckBox.get(position));
    }  

Здесь arrCheckBox - логический ArrayList, который хранит записи о нашем выборе, а размер этого массива такой же, как и у no. ListItems. Я надеюсь, что теперь вы можете понять это.

1 голос
/ 14 июля 2011

XML-файл:

<?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">
    <ListView android:id="@+id/ListView01" android:layout_height="wrap_content"
        android:layout_width="fill_parent"></ListView>
</LinearLayout>

Java-код:

public class ListViewMultipleChoiceExample extends Activity {
    private ListView lView;
    private String lv_items[] = { "Android", "iPhone", "BlackBerry",
            "AndroidPeople", "J2ME", "Listview", "ArrayAdapter", "ListItem",
            "Us", "UK", "India" };

    @Override
    public void onCreate(Bundle icicle) {
        super.onCreate(icicle);
        setContentView(R.layout.main);
        lView = (ListView) findViewById(R.id.ListView01);
        // Set option as Multiple Choice. So that user can able to select more
        // the one option from list
        lView.setAdapter(new ArrayAdapter<String>(this,
                android.R.layout.simple_list_item_multiple_choice, lv_items));
        lView.setChoiceMode(ListView.CHOICE_MODE_MULTIPLE);
    }
}

screenshot

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