该问题通常由于在列表中的项目被更新时,在返回的数据中没有正确更新选中项的位置所引起。解决此问题的方法是确保在更新数据时正确更新选中项的位置。
以下是一个示例,演示如何在更新列表数据时更新选定位置:
public class MyRowsFragment extends BrowseSupportFragment {
private List mMoviesList;
private ArrayObjectAdapter mRowsAdapter;
@Override
public void onViewCreated(View view, Bundle savedInstanceState) {
super.onViewCreated(view, savedInstanceState);
// Initialize data
mMoviesList = new ArrayList<>();
mRowsAdapter = new ArrayObjectAdapter(new ListRowPresenter());
setAdapter(mRowsAdapter);
// Set initial selection
setSelectedPosition(0);
// Load data and update selected position
loadData();
}
private void loadData() {
// Load data
// ...
// Update list
mMoviesList.clear();
mMoviesList.addAll(newMoviesList);
// Update selected position
setSelectedPosition(0);
}
}
在此示例中,数据列表每次更新后,都会将选中位置设置为第一个项目。这样可以确保选中位置与列表中的项目一致。