Мне нужна ваша помощь. У меня есть listview и search edittext, когда я печатаю для поиска записи и совпадает с db, она отображает все записи. Однако, если ни одна запись не соответствует, она просто ничего не отображает. То, что я хочу сделать это, чтобы отобразить сообщение Нет найденных записейAndroid получить текущий счет, возвращенный курсором
Это то, что я пытался до сих пор:
etSearch.addTextChangedListener(new TextWatcher(){
public void afterTextChanged(Editable arg0) {
}
public void beforeTextChanged(CharSequence arg0, int arg1,
int arg2, int arg3) {
}
public void onTextChanged(CharSequence cs, int arg1, int arg2,
int arg3) {
adapter.getFilter().filter(cs.toString());
}
});
adapter.setFilterQueryProvider(new FilterQueryProvider() {
@Override
public Cursor runQuery(CharSequence constraint) {
String searchBy = constraint.toString();
if(cursor.getCount() == 0) {
Log.e("Cursor", "" + "Empty result");
}
return dbHelper.searchProduct(searchBy, telco);
}
});
UPDATE:
public Cursor searchProduct(String product, String telco)
{
final String MY_QUERY
= "SELECT * " +
"FROM products " +
"WHERE telco_code = '" + telco + "' " +
"AND product_code LIKE '%" + product + "%' " + // LIKE '%
"AND product_description LIKE '%" + product + "%';";
Cursor localCursor =
this.myDataBase.rawQuery(MY_QUERY, null);
if (localCursor != null)
localCursor.moveToFirst();
return localCursor;
}
Любые идеи? Я с радостью порекомендую вам вашу помощь. Благодарю.
вы пробовали 'cursor.getCount()'? –
lol @answers ... очевидно ... проблема в том, что это сделано не в том месте ... также -1 (пожалуйста, исправьте вопрос), вы не указали **, где вы wana * отображаете сообщение * ** ни то, что вы используете (простой ListView? ListFragment/ListActivity?) – Selvin