Estoy usando CursorAdapter
y debajo está mi clase de adaptador. Mi lista consiste en dos vistas de texto y un botón en cada fila. Ahora, al hacer clic en el botón, quiero eliminar el elemento seleccionado de la lista y de la base de datos. ¿Cómo puedo obtener el id del elemento seleccionado de la base de datos para poder eliminarlo y luego notificar al adaptador (actualizar la lista)?Cómo eliminar un elemento seleccionado de ListView usando CursorAdapter
public class MyAdapter extends CursorAdapter {
Cursor c;
LayoutInflater inflater;
Context context;
private String TAG = getClass().getSimpleName();
public MyAdapter(Context context, Cursor c) {
super(context, c);
this.c = c;
this.context = context;
inflater = LayoutInflater.from(context);
}
@Override
public void bindView(View view, Context context, final Cursor cursor) {
TextView txtName = (TextView) view.findViewById(R.id.txt_name);
txtName.setText(cursor.getString(cursor.getColumnIndex(Helper.tbl_col_username)));
TextView txtPassword = (TextView) view.findViewById(R.id.txt_password);
txtPassword.setText(cursor.getString(cursor.getColumnIndex(Helper.tbl_col_password)));
Button button = (Button) view.findViewById(R.id.btn_delete);
button.setOnClickListener(new OnClickListener() {
public void onClick(View arg0) {
Log.d(TAG, "Button Click ");
}
});
}
@Override
public View newView(Context context, Cursor cursor, ViewGroup parent) {
View v = inflater.inflate(R.layout.row, null);
return v;
}
}
Como por su aprieto vista de lista con el cursor y si está administrando el cursor con la actividad de entonces onListItemClick le da la _ID que desea, pero aquí se está tratando de obtener un _ID en el botón haga clic en bindView, entonces tiene que buscar la identificación antes del clic de su botón con el nombre de la columna _ID y pasarla al clic de su botón, y usarla ... :-) – user370305