我有一个 listView ,它的每一行都显示一个文本。从具有 2 个字段的数据库中获取的每一行:
1-身份证
2文本
现在,在我的列表中,我必须只显示我的文本而不是 id。但是当我单击列表行时,我需要获取与他的文本相关的每一行 ID。事实上,我从 db 获取文本、id 对并显示文本并在点击事件中使用 id。但我该怎么做呢?我如何将 id 与每一行相关联?
我有一个 listView ,它的每一行都显示一个文本。从具有 2 个字段的数据库中获取的每一行:
1-身份证
2文本
现在,在我的列表中,我必须只显示我的文本而不是 id。但是当我单击列表行时,我需要获取与他的文本相关的每一行 ID。事实上,我从 db 获取文本、id 对并显示文本并在点击事件中使用 id。但我该怎么做呢?我如何将 id 与每一行相关联?
将 id 设置为 listView 内每个视图的标签,并在 onClick 中检索它
在您的适配器中,设置 TextView 的标记。
@Override
public View getView(int position, View convertView, ViewGroup parent) {
View listView = null;
LayoutInflater inflater = (LayoutInflater) mContext.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
if( convertView == null){
listView = inflater.inflate(R.layout.list_item, null);
}
else{
listView = convertView;
}
TextView tv = (TextView) listView.findview(R.id.textview);
tv.setText("my-text");
tv.setTag("my-id");
return listView;
}
检索 id :
// Main Activity
@Override
public void onListItemClick(ListView l, View v, int position, long id) {
TextView tv = (TextView)v.findViewById(R.id.textview);
String id = tv.getTag().toString();
}