안드로이드 프로그래밍[JAVA Code]

onSaveInstanceState : 내용 저장하기 Fragment or Activity

훈츠 2019. 12. 3. 22:33
반응형

안드로이드 기기에서 새로운 화면으로 이동 할때, Fragment 혹은 Activity에 써놓은 값이 리셋 되는것을 방지 하기 위해서 onSavInstanceState를 이용하여 저장 하는 방법이다. 물론 SharedPreferences 혹은 DataBase에 저장하는 방법도 있지만 용도에 따라서 아주 적은 값을 저장할때 사용 하는 방법이 onSaveInstanceState 이다. 

1) onSaveInstanceState 를 오버라이드 메소드하고, SaveInstanceState 가 null 이아니면 get으로 값을 복원한다. 

  @Override
    public void onSaveInstanceState(@NonNull Bundle outState) {
        super.onSaveInstanceState( outState );
        String name = editName.getText().toString();
        String phone = editPhone.getText().toString();

        outState.putString( "name",name );
        outState.putString( "phone",phone );

        Toast.makeText( getContext(),"onSaveInstanceState 저장됨", Toast.LENGTH_LONG ).show();
    }


    @Override
    public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
        View view = (View) inflater.inflate( R.layout.frag_sub1,container,false );

        editName =(EditText) view.findViewById( R.id.editText );
        editPhone =(EditText) view.findViewById( R.id.editText2 );

        if(savedInstanceState != null){
            String name = savedInstanceState.getString( "name" );
            String phone = savedInstanceState.getString( "name" );
            editName.setText( name );
            editPhone.setText( phone );
            Toast.makeText( getContext(),"onSaveInstanceState 복원됨", Toast.LENGTH_LONG ).show();
        }

        return view;

    }

 

반응형

'안드로이드 프로그래밍[JAVA Code]' 카테고리의 다른 글

Web View : 내부 사이트  (0) 2019.12.04
Animation : sample sliding  (0) 2019.12.04
Tips and Trick : //TODO  (0) 2019.12.03