Join FlipAndroid.COM Telegram Group: https://t.me/joinchat/F_aqThGkhwcLzmI49vKAiw


Pasar un parámetro al oyente onclick en un botón de una fila listview

Acabo de comenzar android y estoy corriendo en algunos problemas.
He creado un ListView que se rellena de una base de datos.
Cada fila tiene un botón para eliminar el elemento de la lista y la base de datos.

Puedo conectar un oyente del acontecimiento al botón pero no he podido determinar el registro a juego de la base de datos para ser suprimido.

Mi clase se muestra a continuación

 public class FeedArrayAdapter extends ArrayAdapter<Feed> implements OnClickListener { private ARssEReaderDBAdapter dba; private String TAG = "FeedArrayAdapter"; public FeedArrayAdapter(Context context, int textViewResourceId, List<Feed> items) { super(context, textViewResourceId, items); Log.w(TAG, "List"); @Override public View getView(int position, View convertView, ViewGroup parent) { Log.w(TAG, "getView"); View v = convertView; if (v == null) { LayoutInflater vi = (LayoutInflater)getContext().getSystemService(Context.LAYOUT_INFLATER_SERVICE); v = vi.inflate(R.layout.feedlistrow, null); } Feed feed = getItem(position); if (feed != null) { TextView title = (TextView)v.findViewById(R.id.TextView01); if (title != null) { title.setText(feed.getTitle()); } Button btnDelete = (Button)v.findViewById(R.id.btnDelete); btnDelete.setOnClickListener(this); //btnDeleteFeedListener } return v; } public void onClick(View v) { Log.w(TAG, "something got clicked: "); } 

Entonces, ¿cómo puedo pasar el ID de registro de base de datos al controlador para que pueda utilizar el adaptador de base de datos para eliminarlo?

  • ListView y los botones dentro de ListView
  • Elemento de lista con el botón que ya no se puede hacer clic
  • Android: elementos ListView con varios botones que se pueden hacer clic
  • 2 Solutions collect form web for “Pasar un parámetro al oyente onclick en un botón de una fila listview”

    Debe almacenar la ID del registro en la etiqueta, llamar a setTag() en su vista y leerla en la llamada onclick getTag()

    Cree una clase interna que implemente OnClickListener y luego pase la variable de posición en el constructor.

      private Class MyClickListener implements OnClickListener { private int position; public MyClickListener(int position) { this.position = position; } public void onClick(View v) { System.out.println("position " + getPosition() + " clicked."); } public int getPosition() { return position; } } 
    FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.