WedX - журнал о программировании и компьютерных науках

Как установить пользовательский адаптер курсора в список при использовании LoaderManager

В моем onCreate:

Определение списка:

 listView = (ListView) findViewById(R.id.listView1);

Менеджер загрузчика:

getLoaderManager().initLoader(0, null, new LoaderManager.LoaderCallbacks<Cursor>() {
    @Override
    public Loader<Cursor> onCreateLoader(int id, Bundle args) {
        return new CursorLoader(ListDetailActivity.this,
                ReceiptProvider.URI_RECEIPT, Receipt.FIELDS, null, null,
                null);
    }

    @Override
    public void onLoadFinished(Loader<Cursor> loader, Cursor c) {
        System.out.println("Cursor: " + c);
    }

    @Override
    public void onLoaderReset(Loader<Cursor> arg0) {

    }
});

Мой пользовательский адаптер курсора:

 private class CurAdapter extends CursorAdapter {

        public CurAdapter(Context context, Cursor c, int flags) {
            super(context, c, flags);
        }


        @Override
        public void bindView(View view, Context context, Cursor cursor) {

            TextView tv = (TextView) view.findViewById(R.id.textView2);
            String name = (cursor.getString(cursor.getColumnIndexOrThrow("receipt_name")));

            tv.setText(name);
            //setImage(image, iv);

        }

        @Override
        public View newView(Context context, Cursor cursor, ViewGroup parent) {

            View view = LayoutInflater.from(context).inflate(R.layout.list_layout, null);

            return view;

        }


    }

Как мне установить курсор в список сейчас? Я знаю, как это сделать для SimpleCursorAdapter, но я понятия не имею, как это сделать для адаптера курсора, какие-нибудь подсказки?

На данный момент я делаю это так:

  @Override
            public void onLoadFinished(Loader<Cursor> loader, Cursor c) {
               CurAdapter Cur = new CurAdapter(ListDetailActivity.this, c, 0);
                listView.setAdapter(Cur);
            }

Он работает правильно, но я не уверен, что это правильный способ сделать это?

27.07.2015

Ответы:


1

Может быть, так:

listView.setAdapter(new CurAdapter(this, cursor));
27.07.2015

2

вам нужно настроить свой адаптер на просмотр списка в методе инициализации и сохранить ссылку на адаптер в качестве поля. можно передать null в качестве параметра курсора. В классе CursorAdapter есть два метода changeCursor и swapCursor, используйте один из них, чтобы установить курсор в onLoadFinished.

Обновление: https://developer.android.com/training/load-data-background/handle-results.html

27.07.2015
Новые материалы

Я хотел выучить язык программирования MVC4, но не мог выучить его раньше, потому что это выглядит сложно…
Просто начните и учитесь самостоятельно Я хотел выучить язык программирования MVC4, но не мог выучить его раньше, потому что он кажется мне сложным, и я бросил его. Это в основном инструмент..

Лицензии с открытым исходным кодом: руководство для разработчиков и создателей
В динамичном мире разработки программного обеспечения открытый исходный код стал мощной парадигмой, способствующей сотрудничеству, инновациям и прогрессу, движимому сообществом. В основе..

Объяснение документов 02: BERT
BERT представил двухступенчатую структуру обучения: предварительное обучение и тонкая настройка. Во время предварительного обучения модель обучается на неразмеченных данных с помощью..

Как проанализировать работу вашего классификатора?
Не всегда просто знать, какие показатели использовать С развитием глубокого обучения все больше и больше людей учатся обучать свой первый классификатор. Но как только вы закончите..

Работа с цепями Маркова, часть 4 (Машинное обучение)
Нелинейные цепи Маркова с агрегатором и их приложения (arXiv) Автор : Бар Лайт Аннотация: Изучаются свойства подкласса случайных процессов, называемых дискретными нелинейными цепями Маркова..

Crazy Laravel Livewire упростил мне создание электронной коммерции (панель администратора и API) [Часть 3]
Как вы сегодня, ребята? В этой части мы создадим CRUD для данных о продукте. Думаю, в этой части я не буду слишком много делиться теорией, но чаще буду делиться своим кодом. Потому что..

Использование машинного обучения и Python для классификации 1000 сезонов новичков MLB Hitter
Чему может научиться машина, глядя на сезоны новичков 1000 игроков MLB? Это то, что исследует это приложение. В этом процессе мы будем использовать неконтролируемое обучение, чтобы..


Для любых предложений по сайту: [email protected]