У меня есть AutoCompleteTextView, который использует для поиска значения из базы данных. По щелчку отфильтрованного значения установлено значение AutoCompleteTextView, которое может использоваться для обновления значения для конкретных данных.Как удалить данные из AutoCompleteTextView с адаптером напрямую
Я хотел бы добавить delete ImageView functionallity рядом с фильтрованным элементом. В диалоговом окне «Щелчок этого предупреждения» следует удалить или нет. Был способен разработать сценарий.
MyCursorAdapter adapter = new MyCursorAdapter(this, R.layout.edt_delete_item, null, fromName, to);
searchText.setAdapter(adapter);
adapter.setCursorToStringConverter(new CursorToStringConverter() {
@Override
public String convertToString(android.database.Cursor cursor) {
// Get the label for this row out of the "state" column
//final int columnIndex = cursor.getColumnIndexOrThrow("state");
int index = cursor.getColumnIndex(DBConstant.Patient_Name_Columns.COLUMN_NAME);
String strName = "";
if(index != -1)
{
strName = cursor.getString(index);
}
return strName;
}
});
QueryFilter был использован на заказ адаптер: -
adapter.setFilterQueryProvider(new FilterQueryProvider() {
public Cursor runQuery(CharSequence constraint) {
Cursor cursor = getContentResolver().query(DBConstant.Patient_Name_Columns.CONTENT_URI, null,DBConstant.Patient_Name_Columns.COLUMN_NAME_SEARCHALGO + " like '%" + SearchAlgo.getNameSearchAlgo(constraint.toString())+"%'", null, "0");
return cursor;
}
});
Пользовательский адаптер: -
public class MyCursorAdapter extends SimpleCursorAdapter{
public MyCursorAdapter(Context context, int layout, Cursor c,
String[] from, int[] to) {
super(context, layout, c, from, to);
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
//get reference to the row
View view = super.getView(position, convertView, parent);
//check for odd or even to set alternate colors to the row background
if(position % 2 == 0){
view.setBackgroundColor(Color.rgb(238, 233, 233));
}
else {
view.setBackgroundColor(Color.rgb(255, 255, 255));
}
return view;
}
}
Адаптер AutoCompleteTextView имеет компоновку, как показано ниже в edt_delete_item
, имеющий ImageView с удалить.
При щелчке адаптера он устанавливается в AutoCompleteTextView -> SearchText.
Я уже обработан OnClick слушатель ImageView.
Трудно получить id
данных, которые подаются в адаптер.
Могу ли я удалить данные адаптера с помощью этого ImageView?
Согласно предложению, как установить идентификатор курсора в теге ImageView? Как курсор бросает CursorIndexOutOfBoundException
при прохождении его MyCustomAdapter
Там ничего не мешает вам передать как тег для 'ImageView' идентификатор строки из 'Cursor' (в методе' getView() '). Затем вы можете получить его в 'onClick()' с помощью 'v.getTag()'. – Luksprog
@Luksprog: Там, где вы направляете, звучит идеальный путь. Но я не понимаю, как установить тег из курсора в этот ImageView. –
В методе 'getView()' (или 'bindView()') вашего пользовательского адаптера извлекается идентификатор из 'Cursor'. Установите этот идентификатор как тег для 'ImageView',' imageView.setTag (Long.valueOf (idFromCursor)). – Luksprog