(Предварительно) установите флажки в ListActivity, используя 'simple_list_item_checked' - PullRequest
0 голосов
/ 22 сентября 2011

Я использую класс ListActivity в сочетании с simple_list_item_checked -layout, который реализует простые элементы списка с флажками . Все работает нормально - щелчок на добавленных элементах вызывает onListItemClick (), и я могу поставить / снять флажки у соответствующих флажков записей с помощью параметра «View v».

Однако я пока не смог понять, как (предварительно) выбрать флажки без какого-либо вмешательства пользователя?

Минимальный пока работающий фрагмент кода, показывающий мое намерение:

package org.test;

import android.app.ListActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.ArrayAdapter;
import android.widget.CheckedTextView;
import android.widget.ListView;

public class TestActivity extends ListActivity {
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        ArrayAdapter<String> list_elems = new ArrayAdapter<String>(this, android.R.layout.simple_list_item_checked);
        list_elems.add("foobar");
        //TODO: check added entry labeled "foobar"
        setListAdapter(list_elems);
    }

    protected void onListItemClick(ListView l, View v, int position, long id) {
        super.onListItemClick(l, v, position, id);
           CheckedTextView check = (CheckedTextView)v;
        check.setChecked(!check.isChecked());
    }
}

Заранее большое спасибо!

DATEN

Ответы [ 2 ]

2 голосов
/ 06 августа 2012

Это работает для меня:

Вы должны установить режим выбора базового ListView на один или несколько.

public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        ArrayAdapter<String> list_elems = new ArrayAdapter<String>(this, Android.R.layout.simple_list_item_checked);
        list_elems.add("foobar");
        //TODO: check added entry labeled "foobar"
        setListAdapter(list_elems);

        ListView lv = getListView();

        lv.setChoiceMode(ListView.CHOICE_MODE_MULTIPLE);

        lv.setItemChecked(0, true);
    }
0 голосов
/ 22 сентября 2011

Используйте SimpleListAdapter как ListAdapter для своей ListActivity.Используйте два столбца (один для вашей строки, а другой для проверенного значения), и система должна позаботиться об этом сама.Вот хороший пример

...