Each time the app is run, listrow is created repeatedly

Viewed 27
    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 {
        }

    }

And when the UI is set after the loader is finished, add a Listrow containing data to the adapter. Rowadapter is properly cleared whenever run as adb. However, when I install and use it on my device, a list row is added every time I run this application.

To explain, a list of the form A B is shown when this is first run, but if you kill the app and rerun it, it is displayed in the form of A B A B.

This problem is only seen when installing from ADB. This issue does not occur when running in android studio.

I'm looking for someone to tell me which part is the problem.

0 Answers
Related