Я сделал приложение для смены обоев с 3 различными действиями
- это список категорий
- список обоев определенной категории
- просмотреть и установить выбранные обои
Сценарий
Когда я, например, прокручиваю вниз в 1 °, до конца и нажимаю на категорию, я перехожу к 2 °, но когда я возвращаюсь, я ожидаю, что в конце 1 ° вместо этого я нахожу я в самом начале. (также 2 ° активность до 3 ° и обратно)
Так как я могу сохранить предыдущее состояние? Я использовал RecyclerView, чтобы составить список.
(Я новичок на Android Studio, и извините за плохой английский не мой первый язык)
Если бы я не был достаточно ясен, есть мое приложение:
https://play.google.com/store/apps/details?id=yangxun.animewallpaper
Это код для списка обоев, активность 2 °
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_list_wallpaper);
Toolbar toolbar = (Toolbar)findViewById(R.id.toolbar);
toolbar.setTitle(Common.CATEGORY_SELECTED);
setSupportActionBar(toolbar);
getSupportActionBar().setDisplayHomeAsUpEnabled(true);
getSupportActionBar().setDisplayShowHomeEnabled(true);
recyclerView = (RecyclerView)findViewById(R.id.recycler_list_wallpaper);
recyclerView.setHasFixedSize(true);
GridLayoutManager gridLayoutManager = new GridLayoutManager(this, 2);
recyclerView.setLayoutManager(gridLayoutManager);
loadBackgroundList();
}
private void loadBackgroundList(){ //....
}
@Override
protected void onStart(){
super.onStart();
if(adapter!=null)
adapter.startListening();
}
@Override
protected void onResume(){
super.onResume();
if(adapter!=null)
adapter.startListening();
}
@Override
protected void onStop(){
if(adapter!=null)
adapter.stopListening();
super.onStop();
}
@Override
public boolean onOptionsItemSelected(MenuItem item){
if(item.getItemId()== android.R.id.home)
finish(); //Close activity when click Back button
return super.onOptionsItemSelected(item);
}
Вот мой адаптер
public MyFragmentAdapter(FragmentManager fm, Context context){
super(fm);
this.context = context;
}
@Override
public Fragment getItem(int position){
if(position==0)
return CategoryFragment.getInstance();
else
return null;
}
@Override
public int getCount(){
return 1;
}
@Override
public CharSequence getPageTitle(int position) {
switch (position) {
case 0:
return "Category";
}
return "";
}