我正在尝试设计一个Android应用程序,在该应用程序中,我已将第一个活动的数据发送到第二个活动。在第二个活动中,我正在使用此代码
count
当应用程序移动到横向到纵向模式时保存数据,但在我的应用程序中,即使我正在使用这两个,但数据没有被保存。在轮换时,数据被摧毁,应用程序在 @Override
protected void onSaveInstanceState(Bundle outState) {
super.onSaveInstanceState(outState);
}
@Override
protected void onRestoreInstanceState(Bundle savedInstanceState) {
super.onRestoreInstanceState(savedInstanceState);
}
视图中。
请检查下面的代码,给出建议我在哪里做错了保存数据
MainActivity.java
EditText
SecondClass.java
public class MainActivity extends AppCompatActivity {
EditText name,age;
TextView text_name,text_age;
Button btn;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
name=(EditText) findViewById(R.id.name);
age=(EditText) findViewById(R.id.age);
text_name=(TextView) findViewById(R.id.name_edit);
text_age=(TextView) findViewById(R.id.name_age);
btn=(Button) findViewById(R.id.click);
//Button Click to send data to another activity
btn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
Bundle bundle=new Bundle();
String user_name=name.getText().toString();
String user_age=age.getText().toString();
bundle.putString("UName",user_name);
bundle.putString("UAge",user_age);
Intent intent=new Intent(MainActivity.this,SecondClass.class);
intent.putExtras(bundle);
startActivity(intent);
}
});
}
}
答案 0 :(得分:0)
您使用密钥在已保存的实例中输入并获取值,然后首先将数据放入 'outState'然后调用'
super.onSaveInstanceState(outState);
试试这个:
public class SecondClass extends Activity {
private static final String SAVED_NAME="savedName";
private static final String SAVED_AGE="savedAge";
EditText name,age;
TextView text_name,text_age;
String namer,ager;
private String savedName,savedAge;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.second_activity_layout);
name=(EditText) findViewById(R.id.name);
age=(EditText) findViewById(R.id.age);
text_name=(TextView) findViewById(R.id.name_edit);
text_age=(TextView) findViewById(R.id.name_age);
if (savedInstanceState!=null)
{
namer = savedInstanceState.get(SAVED_NAME);
name.setText(namer);
ager = savedInstanceState.get(SAVED_AGE);
age.setText(ager);
}
if (savedInstanceState==null)
{
Intent i=getIntent();
Bundle bundle=i.getExtras();
namer=bundle.getString("UName");
name.setText(namer);
ager=bundle.getString("UAge");
age.setText(ager);
}
}
@Override
protected void onSaveInstanceState(Bundle outState) {
outState.putString(savedName,namer);
outState.putString(savedAge,ager);
super.onSaveInstanceState(outState);
}
@Override
protected void onRestoreInstanceState(Bundle savedInstanceState) {
super.onRestoreInstanceState(savedInstanceState);
if (savedInstanceState!=null)
{
namer = savedInstanceState.get(SAVED_NAME);
name.setText(namer);
ager = savedInstanceState.get(SAVED_AGE);
age.setText(ager);
}
if (savedInstanceState==null)
{
Intent i=getIntent();
Bundle bundle=i.getExtras();
namer=bundle.getString("UName");
name.setText(namer);
ager=bundle.getString("UAge");
age.setText(ager);
}
}
}