Android 安卓在点击布局时从光标获取数据?
我的列表行有一个布局,其中包含一些文本和一个应该模拟按钮的布局。我面临的问题是,我总是会在光标中获取最新的数据,这意味着如果我单击第一行上的布局,我应该会得到grp id 1和grp名称1,但是我得到grp id 3,grp名称3,而不管我在listview中单击哪个布局。怎么解决这个问题?我的代码: 在getView方法中Android 安卓在点击布局时从光标获取数据?,android,listview,cursor,Android,Listview,Cursor,我的列表行有一个布局,其中包含一些文本和一个应该模拟按钮的布局。我面临的问题是,我总是会在光标中获取最新的数据,这意味着如果我单击第一行上的布局,我应该会得到grp id 1和grp名称1,但是我得到grp id 3,grp名称3,而不管我在listview中单击哪个布局。怎么解决这个问题?我的代码: 在getView方法中 ViewHolder holder; if (convertView == null) { holder = new ViewHol
ViewHolder holder;
if (convertView == null) {
holder = new ViewHolder();
holder.text2 = (TextView) vi.findViewById(R.id.text2);
holder.layout1 = (LinearLayout)vi.findViewById(R.id.info);
vi.setTag(holder);
} else {
holder = (ViewHolder) vi.getTag();
}
String grpCount = c.getString(c
.getColumnIndex(TestDbAdapter.KEY_GRP_COUNT));
holder.text2.setText("Channels: " + grpCount);
holder.layout1.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
System.out.println(c.getString(c.getColumnIndex(TestDbAdapter.KEY_GRP_NAME)));
System.out.println(c.getString(c.getColumnIndex(TestDbAdapter.KEY_GRP_ID)));
}
});
return vi;
检查一下,我想应该这样修复:
String grpCount = c.getString(c
.getColumnIndex(TestDbAdapter.KEY_GRP_COUNT));
final String grpName = c.getString(c.getColumnIndex(TestDbAdapter.KEY_GRP_NAME));
final String grpId = c.getString(c.getColumnIndex(TestDbAdapter.KEY_GRP_ID));
holder.text2.setText("Channels: " + grpCount);
holder.layout1.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
System.out.println(grpName);
System.out.println(grpId);
}
});