android保存数据的方法

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


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值