How to save and restore ListView position in Android

前端 未结 4 595
再見小時候
再見小時候 2021-02-03 15:05

I have tabView, displaying list in each tab. When I scroll in one tab, switch to another tab and return to previous tab, position is returned to the top instead of displaying pr

4条回答
  •  北海茫月
    2021-02-03 15:29

    In listView.setOnItemClickListener, use the saveLastPosition method. And after listview.setAdapter(adapter);call the getLastPosition method

    public void saveLastPosition(){
        int position=listView.getLastVisiblePosition();
    
        SharedPreferences pref=PreferenceManager.getDefaultSharedPreferences(this);    
        SharedPreferences.Editor editor=pref.edit();
        editor.putInt("lastPosition",position);   
        editor.apply();
    }
    
    public void getLastPosition(){
        int position=listView.getLastVisiblePosition();
    
        SharedPreferences pref=PreferenceManager.getDefaultSharedPreferences(this);      
        int lastPosition=pref.getInt("lastPosition",position);
        listView.setSelection(lastPosition);
    }
    

提交回复
热议问题