C# 如何在C编写的Android中声明和设置游标#
我有这样一个代码:C# 如何在C编写的Android中声明和设置游标#,c#,android,xamarin,declare,C#,Android,Xamarin,Declare,我有这样一个代码: public List<Track> getAllSdCardTracks(Context context) { List<Track> tracks = new List<Track>(); Cursor c = context //this is the problem .getContentResolver() .query(MediaStore.Aud
public List<Track> getAllSdCardTracks(Context context) {
List<Track> tracks = new List<Track>();
Cursor c = context //this is the problem
.getContentResolver()
.query(MediaStore.Audio.Media.EXTERNAL_CONTENT_URI,
new String[] { MediaStore.Audio.Media._ID,
MediaStore.Audio.Media.DATA,
MediaStore.Audio.Media.ARTIST,
MediaStore.Audio.Media.ALBUM,
MediaStore.Audio.Media.DURATION,
MediaStore.Audio.Media.DISPLAY_NAME,
MediaStore.Audio.Media.ALBUM_ID }, "1=1",
null, null);
if (c.moveToFirst()) {
do {
String mArtist = c
.getString(c
.getColumnIndexOrThrow(MediaStore.Audio.Media.ARTIST));
String mTitle = c
.getString(c
.getColumnIndexOrThrow(MediaStore.Audio.Media.DISPLAY_NAME));
String mId = c.getString(c
.getColumnIndexOrThrow(MediaStore.Audio.Media._ID));
String mAlbumName = c
.getString(c
.getColumnIndexOrThrow(MediaStore.Audio.Media.ALBUM));
String mAlbumID = c
.getString(c
.getColumnIndexOrThrow(MediaStore.Audio.Media.ALBUM_ID));
String mPath = c
.getString(c
.getColumnIndexOrThrow(MediaStore.Audio.Media.DATA));
long mDuration = c
.getLong(c
.getColumnIndexOrThrow(MediaStore.Audio.Media.DURATION));
String mFormattedDuration = DateUtils
.formatElapsedTime(mDuration / 1000);
Track track = new SDTrack(mAlbumID, mAlbumName, mArtist, mId, mTitle, mPath , mFormattedDuration);
tracks.add(track);
} while (c.moveToNext());
if (c != null)
c.close();
}
return tracks;
}
但我不知道该怎么办!!:/
谁能给我解释一下吗?!(请用c键入代码#我不能使用java)您是否缺少using指令 编辑: 根据Xamarin的例子
您需要声明它
ICursor
是否缺少using指令
编辑:
根据Xamarin的例子
您需要声明它
ICursor
它应该相当简单:
var cursor = context.ContentResolver.Query(
MediaStore.Audio.Media.ExternalContentUri,
new string[]
{
/* insert fields here */
},
"1=1",
null,
null);
返回的“游标”将是ICursor。它应该相当简单:
var cursor = context.ContentResolver.Query(
MediaStore.Audio.Media.ExternalContentUri,
new string[]
{
/* insert fields here */
},
"1=1",
null,
null);
返回的‘cursor’将是ICursor。我问他,他说:“cursor”是一个Android类!我觉得它有点像“ListAdapter”!所以如果我错过了使用指令,那么哪个指令?!!据我所知,它应该是android.databaseIt不是,我尝试过,但它没有任何影响。这种用法似乎是针对java的,而不是针对C!我更新了我的答案,请看一下示例代码。我问他,他说:“Cursor”是一个Android类!我觉得它有点像“ListAdapter”!所以如果我错过了使用指令,那么哪个指令?!!据我所知,它应该是android.databaseIt不是,我尝试过,但它没有任何影响。这种用法似乎是针对java的,而不是针对C!我更新了我的答案,请看一下示例代码。
var cursor = context.ContentResolver.Query(
MediaStore.Audio.Media.ExternalContentUri,
new string[]
{
/* insert fields here */
},
"1=1",
null,
null);