2012-03-01 96 views
0

我需要检索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); 
    } 
} 

编辑:解

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); 
} 
+0

什么是_id?你需要详细说明。 – straya 2012-03-01 01:44:14

+0

@straya它是适配器用作列名称的字符串'BaseColumns._ID'。 – 2012-03-01 01:45:54

+0

为什么在问一个问题时不要模棱两可的好例子! – straya 2012-03-01 02:09:30

回答

0

你已经得到了它。查看该方法的参数。请参阅“长ID”部分?这就是你要找的。

0

我使用String s = ((Cursor) l.getItemAtPosition(position)).getString(0);只是解析它。