¿Cómo setOnclickListener () en el botón dentro de ListView?

En la aplicación tengo una Listactivity que tiene un adaptador con TextView y Button (etiquetado eliminar). Ahora quiero quitar el botón correspondiente. Compruebe por favor el código y sugiera ???? “

public class MySimpleArrayAdapter extends ArrayAdapter<String> implements OnClickListener { private final Activity context; private final String[] names; private Button deleteButton= null; public MySimpleArrayAdapter(Activity context, String[] names) { super (context, R.layout.imagelistlayout, names); this.context = context; this.names = names; } @Override public View getView(int position, View convertView, ViewGroup parent) { LayoutInflater inflater = context.getLayoutInflater(); View rowView = inflater.inflate(R.layout.imagelistlayout, null, true); deleteButton= (Button)rowView.findViewById(R.id.delete_bn); deleteButton.setTag(position); TextView textView = (TextView) rowView.findViewById(R.id.label); textView.setText(names[position]); deleteButton.setOnClickListener(this); return rowView; } @Override public void onClick(View convertView) { System.out.println(deleteButton.getTag()); } }` 

Quiero saber cómo puedo eliminar el elemento cuyo botón se ha hecho clic.

Sólo manejar en el oyente de clics dentro de getview donde se encuentra el botón utilizando findviewbyid

Esto controlará el clic de botón de fila actual

 public class MySimpleArrayAdapter extends ArrayAdapter<String> implements OnClickListener { private final Activity context; private final String[] names; private Button deleteButton= null; public MySimpleArrayAdapter(Activity context, String[] names) { super (context, R.layout.imagelistlayout, names); this.context = context; this.names = names; } @Override public View getView(int position, View convertView, ViewGroup parent) { LayoutInflater inflater = context.getLayoutInflater(); View rowView = inflater.inflate(R.layout.imagelistlayout, null, true); deleteButton= (Button)rowView.findViewById(R.id.delete_bn); deleteButton.setTag(position); TextView textView = (TextView) rowView.findViewById(R.id.label); textView.setText(names[position]); deleteButton.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View arg0) { //try to hide textview or something it may help } }); return rowView; } }` 

Debe intentar no codificar el manejador onClick en el método getView, pero observe cómo asignar un método onClick a un listview. Aquí se asigna el método de la actividad y eso es lo que debe hacer aquí también.

En usted adaptador crea un método llamado setOnXXXClickListener

 public void setOnXXXClickListener(final OnClickListener onClickListener) { this.onXXXClickListener = onClickListener; } 

Y en su getView asignar esto al botón como así

 viewHolder.xxx.setOnClickListener(this.onXXXClickListener); 

Desde usted Actividad, puede asignar el método onClick como este

 this.adapter.setOnXXXClickListener(new OnClickListener() { @Override public void onClick(View v) { Log.d(TAG, "OnXXXClickListener"); } }); 
 deleteButton.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View arg0) { Log.d("TAG", "position: " + position); } }); 

Y la posición que usted necesita para hacer a final en getView (posición final int, …, …) Cuando usted tiene la posición, haga lo que quiera con él! Borrar, modificar o lo que sea ..

Muy simple tiene la variable de posición int en getView que se refiere al elemento en el que se ha inflado el botón, así que utilice la variable de posición para eliminar el elemento en el que ha hecho clic. Sólo use el código debajo.

 @Override public View getView(int position, View convertView, ViewGroup parent) { LayoutInflater inflater = context.getLayoutInflater(); View rowView = inflater.inflate(R.layout.imagelistlayout, null, true); deleteButton= (Button)rowView.findViewById(R.id.delete_bn); deleteButton.setTag(position); TextView textView = (TextView) rowView.findViewById(R.id.label); textView.setText(names[position]); // deleteButton.setOnClickListener(this); deleteButton.setOnClickListener(new OnClickListener() { @Override public void onClick(View arg0) { // TODO Auto-generated method stub //use position here // delete the item from data string havng position index and the use notifydataset } }); return rowView; } 
  • Envoltura de texto mediante simple_list_item_multiple_choice
  • GetLoaderManager en ListActivity
  • Forzar cierre en modo horizontal, pero no en vertical
  • El elemento de lista (una vista) cambia de orden sin que suceda mientras se desplaza (rápido) en un ListView
  • El clic no está funcionando en el Listtext de Listitem android
  • Android ListView Edge Fading funciona en un dispositivo virtual 2.2 pero no en Samsung 2.2.1
  • Problema al agregar pie de página a ListView
  • Cambiar el color de fondo de un elemento en Android ListActivity onListItemClick
  • Desplazamiento por Android en la lista
  • Androide. Para mostrar los contactos como vista de lista
  • Android: conectar mysql (XAMPP) a la aplicación android en el emulador
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.