android保存数据的方法

来源:互联网 发布:vc串口编程 编辑:程序博客网 时间:2024/05/24 15:37

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);}//取出数据@Overrideprotected 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