У меня есть для вас эта подсказка ...
Мы пытаемся передать аргумент запросу в средстве разрешения содержимого. Мы хотим получить все строки, если аргумент равен 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 вместо ""??
Большое спасибо.