Не удается использовать метод setFilterQueryProvider на адаптере курсора - PullRequest
0 голосов
/ 01 декабря 2018

Я хочу загрузить данные в другое listView (одно и то же действие) в зависимости от времени (выбора) из базы данных sqlite, но я не знаю, почему мое приложение продолжает падать ... пожалуйста, кто-то скажет мне, что не так в моем кодениже ...

В MainActivity.java

    mCursorAdapter = new FoodCursorAdapter(this,null);
    mCursorAdapter.setFilterQueryProvider(new FilterQueryProvider() {
        public Cursor runQuery(CharSequence constraint) {
            return FP.fetchdatabyfilter(constraint.toString(),"time" );
        }
    });
    mCursorAdapter.getFilterQueryProvider().runQuery("D");
    dinner.setAdapter(mCursorAdapter);

В FoodProvider.java

    public Cursor fetchdatabyfilter(String inputText,  String filtercolumn) throws SQLException {
    String selection = filtercolumn + "=?";
    String[] selectionArgs = {inputText};
    String[] projection = {
            FoodEntry._ID,
            FoodEntry.COLUMN_FOOD_NAME,
            FoodEntry.COLUMN_FOOD_CALORIES,
            FoodEntry.COLUMN_FOOD_TIME
    };
    Cursor row = null;
    if (inputText == null  || inputText.length() == 0 ) {
        row = getContext().getContentResolver().query(FoodEntry.CONTENT_URI, projection,null,null,null);
    } else {
        row = getContext().getContentResolver().query(FoodEntry.CONTENT_URI, projection,selection,selectionArgs,null);
    }
    if (row != null)
    {
        row.moveToFirst();
    }
    return row;
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...