在android ListView中获取所选项ID(来自db)

时间:2013-05-11 22:15:57

标签: java android android-listview

我有一个listView,每行显示一个文本。从具有2个字段的数据库中获取的每一行:

1- id

2 - 文本

现在,在我的列表中,我必须只显示我的文字而不是id。但我需要当我点击一个列表行获取与他的文本相关的每一行ID。实际上我从db获取文本,id对并显示文本并在click事件中使用id。但我怎么能这样做?我如何将ID与每一行相关联?

2 个答案:

答案 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();
}