Ho appena avviato Android e sto riscontrando alcuni problemi.
Ho creato un ListView
che viene popolato da un database.
Ogni riga ha un pulsante per eliminare l'elemento dall'elenco e dal database.Passare un parametro al listener onclick su un pulsante in una riga listview
Sono in grado di collegare un listener di eventi al pulsante ma non sono stato in grado di determinare il record del database corrispondente da eliminare.
La mia classe è mostrato sotto
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: ");
}
Così come posso passare il database ID record al gestore in modo da poter utilizzare l'adattatore di database per eliminarlo?
Grazie per le vostre risposte, le opzioni di tag sembrava essere il più facile da implementare e fa tutto ciò che voglio :) Grazie ancora – Richard
Mi piace questa risposta perché il mio setTag() era già in uso per qualcos'altro. –
Questo ha funzionato alla grande in quanto avevo bisogno di passare più di un valore ad un ascoltatore di clic! Grazie – speedynomads