0

Пожалуйста, посмотрите на код нижефрагментарно, Инстансы не получают сохранены

import android.os.Bundle; 
import android.support.v4.app.Fragment; 
import android.support.v4.app.FragmentTransaction; 
import android.view.LayoutInflater; 
import android.view.View; 
import android.view.View.OnClickListener; 
import android.view.ViewGroup; 
import android.widget.Button; 
import android.widget.RadioButton; 
import android.widget.RadioGroup; 
import android.widget.RadioGroup.OnCheckedChangeListener; 
import android.widget.SeekBar; 
import android.widget.SeekBar.OnSeekBarChangeListener; 
import android.widget.TextView; 
import android.widget.Toast; 

public class InputFragment extends Fragment { 


    private SeekBar daysAsCustomerSeek; 

    private View view; 

    //Following variables will save the application state and load back 
    //on resume 

    private final String DAYS_AS_CUSTOMER_VALUE_HOLDER = "days as customer value"; 




    public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) 
    { 
     //Intializing instance variables 
     view = inflater.inflate(R.layout.input, container,false); 



     daysAsCustomerSeek = (SeekBar)view.findViewById(R.id.days_as_customer_seekbar); 

     //Set default max values 
     daysAsCustomerSeek.setMax(210); 

     return view; 

    } 

    //This method will save the instances 
    @Override 
    public void onSaveInstanceState(Bundle savedInstanceStateBundle) 
    { 

     savedInstanceStateBundle.putInt(DAYS_AS_CUSTOMER_VALUE_HOLDER, daysAsCustomerSeek.getProgress()); 


    } 

    //This method will restore the instances 
    @Override 
    public void onActivityCreated(Bundle savedInstanceStateBundle) 
    { 
     super.onActivityCreated(savedInstanceStateBundle); 

     if(savedInstanceStateBundle!=null) 
     { 

      daysAsCustomerSeek.setProgress(savedInstanceStateBundle.getInt(DAYS_AS_CUSTOMER_VALUE_HOLDER)); 

     } 
    } 

} 

Проблема заключается в том, когда я включаю устройство или вернуться обратно к этому фрагменту, не его состояния были спасены! Вместо этого все было воссоздано! Почему это? Почему этот код не показывает состояние?

+0

Проверьте это .. http://stackoverflow.com/questions/20019381/how-to-avoid-recreating-view-on-oncreate-on-android/20329356#20329356 – AndroidHacker

ответ

2

Добавить:

super.onSaveInstanceState(savedInstanceStateBundle); 

в onSaveInstanceState метод.

+0

Спасибо за ответ. Но дело в том, что оно не восстанавливает значения при изменении ориентации устройства. Есть идеи? –

Смежные вопросы