Вы извлекаете данные с помощью запроса SELECT , который возвращается как курсор при использовании Android SDK.
Курсор похож на таблицу в том смысле, что в нем есть ряд строк, каждая из которых содержит определенное количество столбцов, определяемое выбранными вами значениями.
Чтобы получить все строки, запрос SELECT будет выглядеть следующим образом: -
`SELECT * FROM keywords`
Чтобы сделать это с помощью Android SDK, вы можете использовать SQLiteDatabase query вспомогательный метод, например. для вышеперечисленного вы можете использовать: -
Cursor cursor = db.query("keywords",null,null,null,null,null,null);
- проверьте ссылки выше для значений / параметров, которые могут быть переданы и как они соотносятся с оператором SELECT.
Затем вы перемещаетесь по возвращенному курсору, извлекая данные, обычно используя Курсор move ??? . Отмечая, что большинство из них вернет false, если перемещение сделать невозможно, а также отметив, что исходная позиция в Курсоре перед первой строкой
Таким образом, у вас может быть метод, который возвращает курсор в соответствии с: -
public Cursor getAllKeys(){
SQLiteDatabase db = this.getWritableDatabase();
return db.query("keywords",null,null,null,null,null,null);
}
Затем вы можете обработать все строки, используя: -
Cursor csr = yourDBHelper.getAllKeys();
while (csr.moveToNext()) {
String current_contact_number = csr.getString(csr.getColumnIndex("contact_number");
String current_alarm = csr.getString(csr.getColumnIndex("alarm");
String current_location = csr.getString(csr.getColumnIndex("location"));
...... your code to Toast or use the retrieved values
}
csr.close(); //<<<<<<<<<< you should always close a Cursor when finished with it.
Дополнительный
По поводу комментария: -
Запрос курсора, который вы предложили, я пытался внести в него изменения
как поставить столбец и предложение where, но после этого он возвращает меня
ничего, когда я выполню его. Не могли бы вы также сказать мне этот запрос.
Следующим может быть способ получения только сигнала тревоги по номеру контакта.
public String getAlarmByContactNumber(String contactNumber){
String rv = "";
SQLiteDatabase db = this.getWritableDatabase();
Cursor csr = db.query(
"keywords", //<<<<<<<<<<<< the FROM clause (less the FROM keyword) typically the name of the table from which the data is to be extracted (but can include JOINS for example, for more complex queries)
new String[]{"alarm"}, //<<<<<<<<<< A String[] of the column names to be extracted (null equates to * which means all columns) (note can be more complex and include functions/sub queries)
"contact_number=?", //<<<<<<<<<< WHERE clause (less the WHERE keyword) note **?** are place holders for parameters passed as 4th argument
new String[]{contactNumber},
null, //<<<<<<<<<< GROUP BY clause (less the GROUP BY keywords)
null, //<<<<<<<<<< HAVING clause (less the HAVING keyword)
null //<<<<<<<<<< ORDER BY clause (less the ORDER BY keywords)
);
if (csr.moveToFirst()) {
rv = csr.getString(csr.getColumnIndex("alarm"));
}
csr.close();
return rv;
}
- Вышеприведенное предполагает, что вы должны иметь / хотите иметь только один сигнал тревоги на контактный номер.
- Вышеприведенный код является принципиальным, он не был запущен или протестирован и поэтому может содержать некоторые незначительные ошибки.