将parameter passing给列表视图中button上的onclick监听器

我刚开始android,我遇到了一些问题。
我创build了一个从数据库填充的ListView
每行都有一个button来从列表和数据库中删除项目。

我能够挂钩一个事件监听器的button,但我一直无法确定要删除的匹配数据库logging。

我的课程如下所示

 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: "); } 

那么如何将数据库loggingID传递给处理程序,以便我可以使用数据库适配器来删除它?

Solutions Collecting From Web of "将parameter passing给列表视图中button上的onclick监听器"

您应该在标签中存储logging的ID,在视图上调用setTag() ,并在onclick中调用getTag()

创build一个实现OnClickListener的内部类,然后在构造函数中传递位置variables。

  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; } }