简单的数据存储----SharePreferenced的使用
1.Preference一般用来存储应用程序的设置信息,比如应用程序的色彩,文字字体。获取Preference由两种方法
(1)调用Context对象的SharePreference方法获取SharePreference对象,需要传入SharePreference的名称和打开方式。名称是Preference文件的名称,如果没有该文件,就以该名称为名创建一个Preference文件。打开方式有:PRIVATE,MODE_WORLD_READABLE,MODE_WORLD_WRITEABLAE
(2)调用Activity对象的getPrefercence方法获取SharePreference对象,需要传入的参数和(1)是一样的
2.上面两种方法所产生的SharePreference有一点区别。就是(1)所产生的Preference允许与其他组件所共享,而(2)所产生的Preference只能在相应的Activity中使用。
3。SharePreferences有许多的get方法用于获取键所返回的值,如果需要对SharePreference进行修改,则必须通过SharePreferences对象的edit()方法产生一个SharePreferences.Editor对象,通过该对象对Preference中的内容进行修改。
4.代码:
该程序实现的是:第二次打开应用程序,可以看到第一次在EditText中输入的值
package game.sharepreference;
import android.app.Activity;
import android.content.SharedPreferences;
import android.os.Bundle;
import android.view.Menu;
import android.widget.EditText;
public class MainActivity extends Activity {
private EditText edit;
SharedPreferences sp;
public final String EDIT_TEXT_KEY="EDIT_TEXT";
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
edit=(EditText)findViewById(R.id.edit);
//获取一个SharePreferences对象
sp=getPreferences(MODE_PRIVATE);
//获取EDIT_TEXT_KEY中的值
String result=sp.getString("EDIT_TEXT_KEY", null);
if(result!=null){
edit.setText(result);
}
}
public void onDestroy(){
//获取一个Editor对象
SharedPreferences.Editor edit=sp.edit();
edit.putString("EDIT_TEXT_KEY", String.valueOf(this.edit.getText()));
edit.commit();
super.onDestroy();
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.main, menu);
return true;
}
}