Выбранный элемент всегда добавляется в массив при добавлении - PullRequest
0 голосов
/ 28 января 2019

Я добавляю отмеченный элемент в массив, но всегда добавляю, когда нажимаю на элемент.Кроме того, когда я снял этот флажок, он также добавляется в arraylist.Это код:

List<String> ingList = new ArrayList<String>();
List<String> onhandIngList = new ArrayList<String>();
ingList.add("one");
ingList.add("two");
intList.add("three");

//displays the arraylist using arrayadapter
final ArrayAdapter<String> arrayAdapter = new ArrayAdapter<String> (this, android.R.layout.simple_list_item_multiple_choice, ingList);

if(ingList.size() != 0) {
    listView.setAdapter (arrayAdapter);
}else{
    Toast.makeText (Ingredients.this, "No data", Toast.LENGTH_SHORT).show ();
}

listView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
   @Override
   public void onItemClick(AdapterView<?> adapterView, View view, int index, long l) {
       Object clickItemObj = adapterView.getAdapter().getItem(index);
       onhandList.add(( String ) clickItemObj);
   }
});

Я ожидаю, что на выходе будет значение проверенного элемента.Но нет повторяющихся выходов.

1 Ответ

0 голосов
/ 28 января 2019

Может быть, вы должны попробовать что-то вроде этого (внутри onItemClick ()):

SparseBooleanArray checked = listView.getCheckedItemPositions();
      if(checked.get(index)){
            onhandlist.add(...)
        }
        else{
            onhandList.remove(...)
        }
...