Есть 3 таба для навигации, в каждом табе фрагмент, во фрагменте listview.
При навигации по табам, пропадает весь листвью со всеми данными. Если же перезагружать адаптер
listView.setAdapter(adapter);
То состояние листвью не теряется после навигации.
MainActivity
private void setupViewPager(ViewPager viewPager) {
ViewPagerAdapter adapter = new ViewPagerAdapter(getSupportFragmentManager());
adapter.addFragment(new MyAudioFragment(), "1 tab");
adapter.addFragment(new TopAudioFragment(), "2 tab");
adapter.addFragment(new SearchAudioFragment(), "3 tab");
viewPager.setAdapter(adapter);
}
public void displayInterstitial() {
if (mInterstitialAd.isLoaded()) {
mInterstitialAd.show();
}
}
class ViewPagerAdapter extends FragmentPagerAdapter {
private final List<Fragment> mFragmentList = new ArrayList<>();
private final List<String> mFragmentTitleList = new ArrayList<>();
public ViewPagerAdapter(FragmentManager manager) {
super(manager);
}
@Override
public Fragment getItem(int position) {
return mFragmentList.get(position);
}
@Override
public int getCount() {
return mFragmentList.size();
}
public void addFragment(Fragment fragment, String title) {
mFragmentList.add(fragment);
mFragmentTitleList.add(title);
}
@Override
public CharSequence getPageTitle(int position) {
return mFragmentTitleList.get(position);
}
}
MyAudioFragment
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
}
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
// Inflate the layout for this fragment
View view = inflater.inflate(R.layout.fragment_my, container, false);
listView = (ListView)view.findViewById(R.id.listView);
player = ((Application)getActivity().getApplication()).getPlayer();
state = listView.onSaveInstanceState();
listView.setOnScrollListener(new AbsListView.OnScrollListener() {
public void onScrollStateChanged(AbsListView view, int scrollState) {
}
public void onScroll(AbsListView view, int firstVisibleItem,
int visibleItemCount, int totalItemCount) {
if(firstVisibleItem+visibleItemCount == totalItemCount && totalItemCount!=0)
{
if(flag_loading == false)
{
flag_loading = true;
LocalOffset += 30;
try {
loadAudioList(LocalOffset);
}catch (IOException e){
}
}
}
}
});
try {
/* if(adapter != null)
listView.setAdapter(adapter);*/
loadAudioList(LocalOffset);
}catch (IOException e){
}
return view;
}
private void loadAudioList(int offset) throws IOException{
wrapper.MyAudio(offset, UserStorage.getUid(), new WrapperVK.WrapperVKActionsAudio() {
@Override
public void onSuccess(ArrayList data) {
final ArrayList dataToUiThread = data;
getActivity().runOnUiThread(new Runnable() {
@Override
public void run() {
if(adapter == null) {
adapter = new AudioAdapter(getActivity(), dataToUiThread);
listView.setAdapter(adapter);
}else {
adapter.addAll(dataToUiThread);
adapter.notifyDataSetChanged();
flag_loading = false;
}
}
});
}
@Override
public void onFail(String data) {
System.out.println(data);
}
@Override
public void onError(Exception e) {
System.out.println(e.toString());
}
});
}
Как правильно сохранить состояние каждого listView?
Здравствуйте, имеется следующая конструкция:
Помогите, а то ничего не поймуОжидаю, что путь должен быть /document/image/picture