SharedPreferences是Android平台上一个轻量级的存储类,主要是保存一些常用的配置比如窗口状态,一般在Activity中 重载窗口状态onSaveInstanceState保存一般使用SharedPreferences完成,它提供了Android平台常规的Long长 整形、Int整形、String字符串型的保存。
2个activity 之间的数据传递除了可以他通过intent来传递,还可以使用SharedPreferences来共享数据的方式
SharedPreferences 用法很简单.
- 根据Context获取SharedPreferences对象
- 利用edit()方法获取Editor对象。
- 通过Editor对象存储key-value键值对数据。
- 通过commit()方法提交数据。
MainActivity:package com.test.sharedpreferencesdemo; import android.os.Bundle; import android.app.Activity; import android.content.Context; import android.content.Intent; import android.content.SharedPreferences; import android.content.SharedPreferences.Editor; import android.view.Menu; import android.view.MenuItem; import android.view.View; import android.widget.Button; import android.support.v4.app.NavUtils; public class MainActivity extends Activity { private Button btn; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); btn=(Button)findViewById(R.id.btn); btn.setOnClickListener(listener); //通過context獲取SharedPreferences的對象sp Context context=MainActivity.this; SharedPreferences sp=context.getSharedPreferences("SP", MODE_PRIVATE);//SP相当于sp的键 //通過利用sp.edit()獲取Editor對象 Editor editor=sp.edit(); //通過editor存儲KEY-VALUE值 editor.putString("welcome", "welcome to OtherActivity");//键值对 //通過editor.commit()方法提交 editor.commit(); } View.OnClickListener listener=new View.OnClickListener() { @Override public void onClick(View v) { // TODO Auto-generated method stub Intent intent=new Intent(); intent.setClass(MainActivity.this, OtherActivity.class); startActivity(intent); } }; @Override public boolean onCreateOptionsMenu(Menu menu) { getMenuInflater().inflate(R.menu.activity_main, menu); return true; } }
在另一个Activity中,将保存的数据取下便可。
OtherActivity:package com.test.sharedpreferencesdemo; import android.app.Activity; import android.content.SharedPreferences; import android.os.Bundle; import android.widget.TextView; public class OtherActivity extends Activity { private TextView tv; @Override protected void onCreate(Bundle savedInstanceState) { // TODO Auto-generated method stub super.onCreate(savedInstanceState); setContentView(R.layout.activity_other); tv=(TextView)findViewById(R.id.tv); //獲取MainActivity中的sp SharedPreferences sp=getSharedPreferences("SP", MODE_PRIVATE);//通过SP获取sp tv.setText(sp.getString("welcome", "NULL"));//取键welcome的值 } }