Доброго дня всем.
Опыта у меня не много поэтому и куча проблем.
Задача у меня такая. При нажатии на элемент из ListView менять его ROW на другой. в принципе все понятно и для 1 элемента я сделал, по тестил, все короче круто. Проанализировал код и выяснил что при нажатии он проверяет нажатую позицию и меняет row, и при нажатии на другой элемент, возвращает 1-ый в начальное состояния и меняет второй. Так вот как сделать весь список row-заменяемым.
Чтобы при нажатии на следующий элемент, предыдущий не менялся в начальное состояние .
Кусочки кода
Код: Выделить всё
public View getView(int position, View convertView, ViewGroup parent) {
ViewHolder holder;
holder= new ViewHolder();
int type = getItemViewType(position);
ChildrensState item = (ChildrensState) getItem(position);
if(convertView==null)
{
switch (type) {
case IS_END_ANSWER:
convertView=cInflater.inflate(R.layout.lesson_children_adapter_lesson, parent,false);
holder.name = (TextView) convertView.findViewById(R.id.childrens_textView_lessons);
holder.averageMark = (TextView) convertView.findViewById(R.id.lesson_averagemark_textView);
holder.absenceChildrens = (CheckBox) convertView.findViewById(R.id.lesson_absencechildrens_checkBox);
convertView.setTag(holder);
break;
case IS_START_ANSWER:
convertView=cInflater.inflate(R.layout.lesson_children_adapter_answer, parent,false);
holder.name = (TextView)convertView.findViewById(R.id.childrens_textView_answer);
convertView.setTag(holder);
break;
}
}
else {
holder= (ViewHolder) convertView.getTag();
}
и Main Activity
Код: Выделить всё
lvChildrensState.setChoiceMode(ListView.CHOICE_MODE_MULTIPLE);
nsState.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
mSelectedItem = position;
childrensStateAdapter.setSelect(mSelectedItem);
childrensStateAdapter.notifyDataSetChanged();
Toast.makeText(getApplicationContext(), "LongClick" + mSelectedItem, Toast.LENGTH_SHORT).show();
}
});
Не ясно как хранить правильно нажатые элементы. дайте подсказку.