- mongodb - 在 MongoDB mapreduce 中,如何展平值对象?
- javascript - 对象传播与 Object.assign
- html - 输入类型 ="submit"Vs 按钮标签它们可以互换吗?
- sql - 使用 MongoDB 而不是 MS SQL Server 的优缺点
当谈到保存状态时,我很困惑。所以我知道当 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/
我正在学习应用程序的屏幕旋转,我遇到了这个example我尝试了一下。 我的问题是,当我使用按钮小部件尝试此操作时,它的文本仍然是空白。单击该按钮时,将出现一个日期选择器对话框以选择日期。但如果选择后
我已经阅读了很多内容,似乎找不到有关我的问题的任何答案。我有一个自定义对象的 ArrayList,它实现了名为 listOfBuddies 的 Parcelable。我正在尝试使用以下代码保存它的状态
我已经创建了一个接近完成的掷骰子应用程序,但是当屏幕方向改变时我无法保存骰子图像。我一直在摆弄 onSavedInstanceState() 方法,但不知道如何实现这一点。我还注意到,当我切换到新的
我有 7 个 Activity ,其余 Activity 之间都有来回导航按钮; Activity 由 editTexts、Spinners、textViews、TimePickers、DatePic
当谈到保存状态时,我很困惑。所以我知道当 Activity 即将被销毁时会调用 onSaveInstanceState(Bundle) 。但是您如何将您的信息存储在其中并将其恢复到 onCreate(
我有一个 Activity(0) 从它托管的 fragment 启动另一个 Activity(1)。我在工具栏中设置了向上按钮以从 Activity(1) 返回到 Activity(0) 和其他一些
在我的 Activity 中,我发现我需要在选项卡式 View 中存储其中一个选项卡的状态。这是搜索栏的结果,我需要一个 Activity 来接收和存储数据。 虽然我的应用程序在手头工作,但当我在我的
考虑下面的 mCreate 等是 int 变量,它们动态增加 mCreate++。我需要存储和检索他们最新的增量值。我认为我做对了,但有些人没有应用最新的增量值。 @Override publi
我有两个 Activity (A 和 B)。 Activity A 调用 Activity B。Activity B 有这样的后退(向上)按钮: getSupportActionBar().setDi
我是一名优秀的程序员,十分优秀!