2 myq 26 myq_26 于 2013.02.20 14:03 提问

如何检索 Listview 中某一个 item 的 ID?

我想检索Listview中某一个项目的ID。现在只能获得位置。如何检索Listview中某一个位置的ID?

public class OSListActivity extends ListActivity { 
................
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
................
................
        MatrixCursor cursor;
        cursor = datasource.getnameList();
        if (cursor.moveToFirst()) {
            startManagingCursor(cursor);
            String vdstatus = cursor.getString(6);
            System.out.println("vdstatus : " + vdstatus);
            String[] from = { "name", "desc", "status", "path", "folder",
                    BaseColumns._ID };
            int[] to = { R.id.name, R.id.desc, R.id.status, R.id.path };
            final VSsimplecursoradapter adapter = new VSsimplecursoradapter(
                    this, R.layout.row, cursor, from, to);
            setListAdapter(adapter);
        }
    }

    @Override
    public void onListItemClick(ListView parent, View view, int position,
            long id) {
        Intent intent = new Intent(this, VSDetailsActivity.class);
        intent.putExtra("com.manager.boot.r1223."+BaseColumns._ID, position);//TODO put _id instead of position
        startActivity(intent);
    }
}

Edit: 解决

public void onListItemClick(ListView parent, View view, int position,
        long id) {
    // Starts TestDetails activity on clicking a list item.
    Cursor cursor = (Cursor) adapter.getItem(position);
    Intent intent = new Intent(this, VSDetailsActivity.class);
    intent.putExtra("com.manager.boot.r1223."+BaseColumns._ID, cursor.getInt(cursor
            .getColumnIndex("_id")));
    startActivity(intent);
}

3个回答

baimy1985
baimy1985   2013.02.20 21:09
已采纳

你的ID是指哪个啊? onListItemClick(ListView parent, View view, int position, long id) 这里不是有一个了吗?如果是数据库里那个id,你有位置position,又有cursor了,可以通过cursor获取啊。

baimy1985
baimy1985 view.findViewById() 你是要这里面的? 其实你是想获取对应的view是不是?
接近 5 年之前 回复
myq_26
myq_26 这里的 ID 是指 ListView 中某一个 item 的 ID.
接近 5 年之前 回复
zlQQhs
zlQQhs   2013.02.25 23:39
mListView.setOnItemSelectedListener(new OnItemSelectedListener() {

            @Override
            public void onItemSelected(AdapterView<?> parent, View view,
                    int position, long id) {
                // TODO Auto-generated method stub

            }

            @Override
            public void onNothingSelected(AdapterView<?> parent) {
                // TODO Auto-generated method stub

            }
        });
LiDaming_and
LiDaming_and   2013.02.21 11:12

你已经获取了呀。看你方法中的参数。看"Long id" 这部分?这就是你要找的 ID.

Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!