我有一个listView,每行显示一个文本。从具有2个字段的数据库中获取的每一行:
1- id
2 - 文本
现在,在我的列表中,我必须只显示我的文字而不是id。但我需要当我点击一个列表行获取与他的文本相关的每一行ID。实际上我从db获取文本,id对并显示文本并在click事件中使用id。但我怎么能这样做?我如何将ID与每一行相关联?
答案 0 :(得分:0)
将id设置为listView内每个视图的标签,并在onClick中检索
答案 1 :(得分:0)
在适配器中,设置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();
}