Android - параметр для выполнения динамического запроса - PullRequest
0 голосов
/ 05 октября 2011

У меня есть запрос в моем основном приложении, который показывает все регистры моей базы данных.

У меня в приложении есть кнопка, которая входит в другой вид деятельности. Там я могу отфильтровать свой запрос (например, у меня есть таблица книг, и я просто хочу книги от автора по определенной цене)

Таким образом, с помощью счетчика я выбираю свои параметры и с намерением добавляю дополнительные, я передаю переменные моей основной деятельности, чтобы я мог показать отфильтрованный запрос.

Вот пример

String selGrado =  this.getIntent().getExtras().getString("grado");


 String query = "Select * FROM Incidentes WHERE 1=1";

   if () query+= " AND codGr='"+selGrado+"'";



     Cursor d = db2.rawQuery(query,null);

Итак, я хочу, чтобы мой запрос выполнялся с параметром selGrado, который я заполнил в своей активности "filter". Какое условие я должен поставить? Потому что, когда приложение запускается, я хочу показать все регистры, чтобы избежать фильтрации без проблем, и я хочу выполнить просто Select * from Incidentes .. и если я запрашиваю через действие FILTER, я хочу, чтобы запрос знал, какую опцию я выбрал. есть ли способ спросить, является ли getExtra, который я получаю, нулевым или что-то в этом роде? спасибо

1 Ответ

0 голосов
/ 05 октября 2011

Да, вы можете проверить дополнительные функции, используя метод намерения hasExtra:

this.getIntent().hasExtra("grado");

, но вы также можете проверить, является ли selGrado нулевым

if(selGrado!=null)

, лучший способ сделать этос обычным запросом вместо rawquery

String selection = null;
String[] selectionArgs = null;

if(getIntent().hasExtra("grado")) 
{
    selection = "codGr=?";
    selectionArgs = new String[]{getIntent().getStringExtra("grado")};
}

Cursor c = db2.query("Incidentes",null,selection, selectionargs, null);
...