1.活动之间传递数据
第一个活动(MainPageActivity.java)存数据:
private static final String KYE1 = "key1";
<pre name="code" class="java">private static final String KYE2= "key2";
Intent intent = new Intent();intent.putExtra(KEY1,"value1");intent.putExtra(KEY2, "value2");intent.setClass(MainPageActivity.this, InfoActivity.class);startActivity(intent); 第二个活动(InfoActivity.java)取数据
String value1 = getIntent().getStringExtra(MainPageActivity.KEY1);
String value2 = getIntent().getStringExtra(MainPageActivity.KEY2);
2.内存不足,可能导致在运行下一个活动后重新返回到上一个活动,由于内存不足,上一个活动被回收,临时数据丢失(比如用户选择的数据),被重新创建。
在上一个活动中添加如下代码;
//保存数据
@Override
protected void onSaveInstanceState(Bundle outState){
super.onSaveInstanceState(outState);
String tempData = "something you just typed"; //要保存的数据,比如textView.getText();
outState.putString("data_key", tempData);
}
//取出数据
@Override
protected void onCreate(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
Log.d(TAG, "onCreate");
setContextView(R.layout.activity_main);
<span style="color:#33CC00;"> </span><span style="color:#000099;"> if(savedInstanceState != null){
String tempData = savedInstanceState.getString("data_key");
}</span>
....
}
3.用户第一次进入时,保存一些用户自己选择的配置,下次在进入时自动加载第一次的配置。这需要保存在硬盘里。(这里只介绍一种用xml保存方法)。
private SharedPreferences sp;
private Editor editor;
String siteID;
int position;
sp = getSharedPreferences("UserInfo", MODE_PRIVATE);
//首先取数据
siteID = sp.getString("siteid", "");
position = sp.getInt("position", 0);
editor.commit();
//判断siteID是否为空
if(!siteID.equals("")){ //非空,则加载数据
textView1.setText(siteID);
textView2.setText(position.toString());
}else{ //为空,则根据用户的输入,保存数据
siteID = textView1.getText();
position = textView2.getText().toInteger();
editor.putString("siteid", siteID);
editor.putInt("position", position);
editor.commit();
}