Каждый раз, когда приложение запускается, 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.
Я ищу кого-нибудь, чтобы сказать мне, в какой части проблема.