Как реализовать действие, если элемент проверен в MultipleChoice ListView? - PullRequest
1 голос
/ 11 февраля 2012

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

ListView lv = (ListView) findViewById(R.id.listview);
ArrayList<String> stateList =Handler.getList();
String[] catalogList = new String[stateList.size()];
catalogList=stateList.toArray(catalogList);
lv.setAdapter(new ArrayAdapter<String>(Catalog.this,
android.R.layout.simple_list_item_multiple_choice, catalogList));

Ответы [ 2 ]

0 голосов
/ 11 февраля 2012

Вы можете добавить onItemClickListener к вашему списку, щелкнув по пункту, проверьте состояние вашего флажка и сделайте необходимое действие.

    ListView lv = (ListView) findViewById(R.id.listview);
    ArrayList<String> stateList =Handler.getList();
    String[] catalogList = new String[stateList.size()];
    catalogList=stateList.toArray(catalogList);
    lv.setAdapter(new ArrayAdapter<String>(Catalog.this,
    android.R.layout.simple_list_item_multiple_choice, catalogList));
    lv.setOnItemClickListener(new OnItemClickListener() {
        @Override
        public void onItemClick(AdapterView<?> parent, View view,
                int position, long id) {
            CheckedTextView checkedTextView = 
                    (CheckedTextView) view.findViewById(android.R.id.text1);
            System.out.println(
                    checkedTextView.getText()+":"+
                    !checkedTextView.isChecked() //because the onItemClick fired before checkedTextView change its state 
                    );
        }
        });

почему см. это

Вы также можете сделать это с помощью специального адаптера. грязный пример следующий:

public class CheckListAdapter extends BaseAdapter {
    //omitted
    @Override
    public View getView(int position, View convertView, ViewGroup parent) {

     final int pos = position; // if you need positon in this item's action
     View item = mInflater.inflate(R.layout.list_item_checkboxt, null);
     (CheckBox)item.findViewById(R.id.checkbox)).setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
        @Override
        public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
                // do your action here
        }
    });     
  }
 }

более эффективное использование адаптера, посмотрите эту запись !

0 голосов
/ 11 февраля 2012

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

http://www.marvinlabs.com/2010/10/custom-listview-ability-check-items/

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