Android 如何在listview中获得子对象的位置?
在下面的代码中,如何获取被单击按钮的位置Android 如何在listview中获得子对象的位置?,android,listview,view,Android,Listview,View,在下面的代码中,如何获取被单击按钮的位置 public class HistoryAdapter extends CursorAdapter { Button button; TextView text; public HistoryAdapter(Context context, Cursor c, int flags) { super(context, c, flags); } @Override public View newView(final Context context
public class HistoryAdapter extends CursorAdapter {
Button button;
TextView text;
public HistoryAdapter(Context context, Cursor c, int flags) {
super(context, c, flags);
}
@Override
public View newView(final Context context, Cursor cursor, ViewGroup parent) {
View view = LayoutInflater.from(context).inflate(R.layout.historylist, parent, false);
return view;
}
@Override
public void bindView(View view, final Context context, final Cursor cursor) {
text = (TextView) view.findViewById(R.id.text);
button = (Button) view.findViewById(R.id.btn);
String body = cursor.getString(cursor.getColumnIndex("name"));
text.setText(body);
button.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
}
});
}
}如果您需要列表中项目的位置,可以从传递到onClick方法的视图中访问它,参考您可以通过以下操作编辑代码:
@Override
public void bindView(View view, final Context context, final Cursor cursor) {
text = (TextView) view.findViewById(R.id.text);
button = (Button) view.findViewById(R.id.btn);
String body = cursor.getString(cursor.getColumnIndex("name"));
text.setText(body);
button.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
int position=(Integer)v.getTag();
}
});
}
希望它能起作用:)以下代码应该能起作用(最后的代码很重要):
这个光标用于列表视图,我想得到按钮在列表视图中的位置,如果它被点击了。虽然链接可能会回答这个问题,但不建议发布它们。发布您认为可以解决问题的链接中的相关代码,并添加链接作为参考。将来,这些链接可能会被修改或替换,使得答案完全不相关。另外,某些链接是不可访问的。为什么这里最后一个重要?<代码>最终< /Cord>是强制使用OnCLICHistListar中的值,当它被创建时,监听器认为值不会改变。
@Override
public void bindView(View view, final Context context, final Cursor cursor) {
text = (TextView) view.findViewById(R.id.text);
button = (Button) view.findViewById(R.id.btn);
String body = cursor.getString(cursor.getColumnIndex("name"));
final int position = cursor.getPosition();
text.setText(body);
button.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
doSomething(position);
}
});