Каждый раз, когда приложение запускается, listrow создается повторно.

          public void onActivityCreated(Bundle savedInstanceState) {
        super.onActivityCreated(savedInstanceState);
        mRowAdapter = new ArrayObjectAdapter(new ListRowPresenter());
        setAdapter(mRowAdapter);
        ...
        
        Here when the activity is created, I set the rowadapter

    }


    public void onLoadFinished(Loader<Cursor> loader, Cursor data) {
        if (data!= null && data.moveToFirst()) {
        final int loaderId = loader.getId();
        if (loaderId == ROW_LOADER) {
            mRowAdapter.clear();
            while (!data.isAfterLast()){
                int categoryIndex =
                        data.getColumnIndex(ItemContract.ItemList.COLUMN_CATEGORY);
                String category = data.getString(categoryIndex);


                HeaderItem headerItem = new HeaderItem(category);
                int itemLoaderId = category.hashCode();
                CursorObjectAdapter exAdapter = mItemCursorAdapters.get(itemLoaderId);
                if (exAdapter == null){
                    CursorObjectAdapter itemCursorAdapter =
                            new CursorObjectAdapter(new CardViewPresenter());
                    itemCursorAdapter.setMapper(new ItemCursorMapper());

                    mItemCursorAdapters.put(itemLoaderId, itemCursorAdapter);
                    ListRow row = new ListRow(headerItem, itemCursorAdapter);
                    mRowAdapter.add(row);

                    Bundle args = new Bundle();
                    args.putString(ItemContract.ItemList.COLUMN_CATEGORY, category);
                    mLoaderManager.initLoader(itemLoaderId, args, this);
                }
                else {
                    ListRow row = new ListRow(headerItem, exAdapter);
                    mRowAdapter.add(row);
                }
                data.moveToNext();
            }


        } else {
            mItemCursorAdapters.get(loaderId).changeCursor(data);
        }
        }
        else {
        }

    }

И когда пользовательский интерфейс установлен после завершения загрузчика, добавьте Listrow, содержащий данные, к адаптеру.Rowadapter правильно очищается при запуске от имени adb. Однако, когда я устанавливаю и использую его на своем устройстве, строка списка добавляется каждый раз, когда я запускаю это приложение.

Чтобы объяснить, список в форме AB отображается при первом запуске, но если вы закрываете приложение и запускаете его повторно, он отображается в форме ABA B.

Эта проблема наблюдается только при установке из ADB. Эта проблема не возникает при работе в Android Studio.

Я ищу кого-нибудь, чтобы сказать мне, в какой части проблема.

0 ответов

Другие вопросы по тегам