请问如何使用onSavedInstanceState示例

请问如何使用onSavedInstanceState示例

归结为拯救一个州,我很困惑。所以我知道onSaveInstanceState(Bundle)当活动即将被销毁时会被调用。但是,如何将信息存储在其中并将其恢复到原始状态onCreate(Bundle savedInstanceState)?我不明白这个捆绑包将如何恢复信息。如果有人可以提供一个例子,那将会很有帮助。开发指南没有很好地解释这一点。

public class Conversation extends Activity {
    private ProgressDialog progDialog;
    int typeBar;
    TextView text1;
    EditText edit;
    Button respond;
    private String name;
    private String textAtView;
    private String savedName;

    public void onCreate(Bundle savedInstanceState){
        super.onCreate(savedInstanceState);

        setContentView(R.layout.dorothydialog);
        text1 = (TextView)findViewById(R.id.dialog);
        edit = (EditText)findViewById(R.id.repsond);
        respond = (Button)findViewById(R.id.button01);

        if(savedInstanceState != null){
            savedInstanceState.get(savedName);
            text1.setText(savedName);
        }
        else{
            text1.setText("Hello! What is your name?");
            respond.setOnClickListener(new View.OnClickListener() {

                @Override
                public void onClick(View v) {
                    name = edit.getText().toString();
                    text1.setText("Nice to meet you "+ name);
                }   
            });
        }
    }

    @Override
    public void onSaveInstanceState(Bundle outState){
        super.onSaveInstanceState(outState);
        outState.putString(savedName, name);
    }}


弑天下
浏览 874回答 3
3回答

明月笑刀无情

所有新Android开发人员应该知道的一个主要注意事项是,只要您为其分配ID,Widgets(TextView,Buttons等)中的任何信息都将由Android自动保留。这意味着大多数UI状态都会得到解决而没有问题。只有当您需要存储其他数据时才会出现问题。来自Android文档:您需要的唯一工作是为要保存其状态的每个小部件提供唯一的ID(带有android:id属性)。如果窗口小部件没有ID,则无法保存其状态

婷婷同学_

一个很好的信息:你不需要在onCreate()方法中检查Bundle对象是否为null。使用onRestoreInstanceState()方法,系统在onStart()方法之后调用该方法。仅当存在要恢复的已保存状态时,系统才会调用onRestoreInstanceState(),因此您无需检查Bundle是否为null
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Android