我可以加载包含以下代码的列表
String[] projection = new String[] {
Audio.Media._ID,
Audio.Media.DATA,
Audio.Media.DISPLAY_NAME};
audioCursor = this.managedQuery(Audio.Media.EXTERNAL_CONTENT_URI,
projection, null, null, Audio.Media.DISPLAY_NAME + " ASC");
startManagingCursor(audioCursor);
String[] columnsToMap = new String[] {Audio.Media.DISPLAY_NAME};
int[] mapTo = new int[] {R.id.text1};
ListAdapter mAdapter = new SimpleCursorAdapter(this,
R.layout.song_item , audioCursor, columnsToMap, mapTo);
this.setListAdapter(mAdapter);
在onListItemClick中我可以得到像这样的文件名
protected void onListItemClick(ListView l, View v, int position, long id) {
String DisplayName;
DisplayName =(String) ((TextView) v).getText(); // get name to compare
Toast.makeText(this,DisplayName, Toast.LENGTH_SHORT).show();
但我需要的是从顶部开始的原始Audio.Media._ID号码。如何从onListItemClick?
中检索此数字答案 0 :(得分:0)
你的设计很差。
您不应该从视图中获取值。您必须将光标跳到position
并使用光标中的值。 id
参数将保留记录的_ID
。
if (audioCursor.moveToPosition(position)) {
String DisplayName;
DisplayName=audioCursor.getString(audioCursor.getColumnIndex(Audio.Media.DISPLAY_NAME));
}