gpt4 book ai didi

android - 请如何使用 onSavedInstanceState 示例

转载 作者:IT老高 更新时间:2023-10-28 13:04:31 29 4
gpt4 key购买 nike

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

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);
}
}

最佳答案

Bundle 是您要保存的所有信息的容器。您使用 put* 函数将数据插入其中。这是一个简短的列表(还有更多)您可以用来在 Bundle 中存储数据的 put 函数。

putString
putBoolean
putByte
putChar
putFloat
putLong
putShort
putParcelable (used for objects but they must implement Parcelable)

在你的 onCreate 函数中,这个 Bundle 被交还给程序。检查应用程序是否正在重新加载或首次启动的最佳方法是:

if (savedInstanceState != null) {
// Then the application is being reloaded
}

要取回数据,请使用 get* 函数,就像 put* 函数一样。数据存储为名称-值对。这就像一个 HashMap 。您提供一个键和值,然后当您想要返回值时,您提供键并且函数获取值。这是一个简短的示例。

@Override
public void onSaveInstanceState(Bundle outState) {
outState.putString("message", "This is my message to be reloaded");
super.onSaveInstanceState(outState);
}

@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
if (savedInstanceState != null) {
String message = savedInstanceState.getString("message");
Toast.makeText(this, message, Toast.LENGTH_LONG).show();
}
}

您保存的消息将被烤到屏幕上。希望这会有所帮助。

关于android - 请如何使用 onSavedInstanceState 示例,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6525698/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com