我有这个提示给你...
我们正在尝试将参数传递给内容解析器中的查询。如果参数为 NULL,我们希望获取所有行,或者获取参数中指示的特定值作为相反的值。
我们使用的方法声明:
static String allArtists = "";
////
Some code
...
Vector<String> discs = new Vector<String>();
discs = getDiscs(allArtists);
////
public Vector<String> getDiscs(String artistName){
因此,我们进行的查询如下:
Uri discsUri = MediaStore.Audio.Albums.EXTERNAL_CONTENT_URI;
ContentResolver contRes = getContentResolver();
String[] queryColumns = { MediaStore.Audio.Albums._ID,
MediaStore.Audio.Albums.ALBUM,
MediaStore.Audio.Albums.ARTIST };
String selectionQuery = "? = ?";
String [] selectionArgs = { MediaStore.Audio.Albums.ARTIST, artistName };
String sortOrderClause = MediaStore.Audio.Albums.ALBUM + " ASC";
Cursor queryRes = contRes.query(discsUri,
queryColumns,
selectionQuery,
selectionArgs,
sortOrderClause
);
为了使该方法可重用,我们将 artistName 作为参数传递,并且因为我们希望选择所有行,所以我们传递常量 allArtists。
关键是这个查询没有返回任何行,因为常量 allArtists = "" 并没有像我们预期的那样充当空值。
最后的问题是:我必须如何以查询将其作为 NULL 值而不是“”的方式声明常量?
非常感谢。