Я хочу создать очень простой пользовательский адаптер курсора, чтобы облегчить изменение цвета элементов строки при щелчке. Используя следующий кодСоздание пользовательского простого адаптера курсора
private static int save = -1;
public void onListItemClick(ListView parent, View v, int position, long id) {
parent.getChildAt(position).setBackgroundColor(Color.BLUE);
if (save != -1 && save != position){
parent.getChildAt(save).setBackgroundColor(Color.BLACK);
}
save = position;
}
Я получил код из этого потока https://stackoverflow.com/a/7649880/498449
я бы использовал простой адаптер курсора и поместил код в OnClick, а потому, что список по умолчанию в ListFragment повторно представление, как вы просматриваете несколько видов, будут выделены. Говоря о IRC, было предложено создать пользовательский адаптер курсора. Тем не менее, я не могу найти наилучшую практику, как это сделать, и где будет помещен фрагмент кода. Может быть очень благодарен за помощь.
public class AreaCursorAdapter extends CursorAdapter {
private Context context;
public AreaCursorAdapter(Context context, Cursor c) {
super(context, c);
// TODO Auto-generated constructor stub
}
@Override
public void bindView(View view, Context context, Cursor cursor) {
TextView list_item = (TextView)view.findViewById(android.R.id.text1);
list_item.setText(cursor.getString(cursor.getColumnIndex(INDICATOR_NAME)));
}
@Override
public View newView(Context context, Cursor cursor, ViewGroup parent) {
LayoutInflater inflater = LayoutInflater.from(context);
View v = inflater.inflate(android.R.layout.simple_list_item_1, parent, false);
bindView(v, context, cursor);
return v;
}
}
Я обновил адаптер курсора кодом, который я нашел в Интернете. Однако у меня две проблемы. 1. Я использую загрузчик курсора, поэтому у меня нет объекта «курсора», который нужно передать в конструктор. 2. Я получаю предупреждение от Eclipse о том, что конструктор устарел.
в NewView создании вида с LayoutInflater.inflate, в BindView установить содержание и фона в соответствии с выбранным междунар в OnClick вы этого нужно просто измените выбор int и сообщите адаптеру, что произошла смена его содержимого. – zapl
@zapl вы можете показать фрагмент кода. Кроме того, я реализую это с помощью курсора-загрузчика, поэтому у меня нет объекта «курсора» для перехода к конструктору. –
У меня нет фрагмента прямо сейчас :(Возможно, у google есть. С загрузчиками do 'adapter.swapCursor()' в 'onLoadFinished'. – zapl