Есть:
ListView lv;
ArrayAdapter<String> adapter;
ArrayList<String> list4adapt = new ArrayList<>();
ArrayList<Boolean> al_checked = new ArrayList<>();
В onCreate:
lv = findViewById(R.id.lv_base);
adapter = new ArrayAdapter<>(this, android.R.layout.simple_list_item_multiple_choice, list4adapt);
lv.setAdapter(adapter);
lv.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent, View v, int position, long id) {
cur_pos = position;
log("1");
SparseBooleanArray chosen = ((ListView) parent).getCheckedItemPositions();
log(" " + String.valueOf(chosen.size()));
al_checked.clear();
for (int i = 0; i < chosen.size(); i++) al_checked.add(chosen.get(i));
}
});
log:1 проходит, а дальше рушится. Сообщение:
java.lang.NullPointerException: Attempt to invoke virtual method 'boolean android.util.SparseBooleanArray.get(int)' on a null object reference
getCheckedItemPositions()возвращаетnull, еслиListViewзадан режимCHOICE_MODE_NONE(устанавливается по умолчанию если не задано иное). – woesss Aug 09 '18 at 17:35