My ListView
- простой ListView, но у него есть проблемы.
Я использую SimpleCursorAdapter
с именем adapter
и хочу, чтобы TextView выделился жирным шрифтом, а фон изменился при нажатии на элемент. Я также хочу, чтобы другой ранее затронутый элемент ListView сбрасывал сам себя.
Ниже приведен код для события onListItemClick
. Этот код сбрасывает видимые элементы списка. и правильно выделяет выбранный элемент. Однако, когда пользователь прокручивает случайные TextViews
жирным шрифтом, я предполагаю, что представления перерабатываются.
Итак, при щелчке я хочу сбросить все ранее нажатые текстовые представления и выделить выделенный элемент жирным шрифтом.
Мой код работает не так, как ожидалось:
@Override
public void onListItemClick(ListView listView, View view, int position, long id)
{
super.onListItemClick(listView, view, position, id);
//Tablet
for (int i = 0; i < adapter.getCount(); i++)
{
View mView = listView.getChildAt(i);
if (mView != null)
{
//Reset Bold text to default
TextView mtv = (TextView)mView.findViewById(R.id.Name);
mtv.setTypeface(null, Typeface.BOLD);
LinearLayout ll = (LinearLayout)mView.findViewById(R.id.itemlayout);
ll.setBackgroundDrawable(null);
}
}
TextView tv = (TextView)view.findViewById(R.id.Name);
tv.setTypeface(null, Typeface.NORMAL);
LinearLayout ll = (LinearLayout)view.findViewById(R.id.itemlayout);
ll.setBackgroundResource(R.drawable.dashboard_list_selector);
}
}