当涉及到只需要保存极少量用户输入数据时,可以考虑使用sharedPreferenece来保存。
详细代码如下:
layout文件activity_main.xml的代码如下:
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical">
<EditText
android:id="@+id/etSharedPrefs"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:ems="10"
>
<requestFocus />
</EditText>
<Button
android:id="@+id/bSave"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Save"
/>
<Button
android:id="@+id/bLoad"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Load"
/>
<TextView
android:id="@+id/tvLoadSharePrefs"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Load your data"
/>
</LinearLayout>
当用户在EditText里面输入数据后,点击save按钮保存用户输入信息,然后再点击load按钮时,可以将用户输入的信息在TextView标签中显示出来。
MainActivity里面的代码如下:
public class MainActivity extends Activity implements OnClickListener {
EditText sharedData;
TextView dataResults;
SharedPreferences someData;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
setUpVariables();
/*使用SharedPreferences保存数据方法如下:
* 第一步:实例化SharedPreferences对象,键为fileName,值为0,全部为自定义
*/
someData=getSharedPreferences("fileName", 0);
}
private void setUpVariables() {
// TODO Auto-generated method stub
Button save=(Button)findViewById(R.id.bSave);
Button load=(Button)findViewById(R.id.bLoad);
sharedData=(EditText)findViewById(R.id.etSharedPrefs);
dataResults=(TextView)findViewById(R.id.tvLoadSharePrefs);
save.setOnClickListener(this);
load.setOnClickListener(this);
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
getMenuInflater().inflate(R.menu.activity_main, menu);
return true;
}
public void onClick(View v) {
// TODO Auto-generated method stub
switch(v.getId()){
//save按钮用来保存数据
case R.id.bSave:
//获取EditText里面的内容,将这个内容赋值给stringData
String stringData=sharedData.getText().toString();
//第二步:实例化SharedPreferences.Editor对象
SharedPreferences.Editor editor=someData.edit();
//第三步:用putString的方法保存数据,sharedString为
//用户自己自定义键,stringData为需要保存的那个数据
editor.putString("sharedString", stringData);
//最后一步:提交当前数据
editor.commit();
break;
//load按钮用来读取数据
case R.id.bLoad:
//第一步:实例化一个sharedPreference对象
someData=getSharedPreferences("fileName", 0);
//第二步:使用getString方法获取value,第二个参数是默认的,
//用户可以填写提示信息,以防止找不到的情况下告知用户
String strReturned=someData.getString("sharedString", "Couldn't load data!");
dataResults.setText(strReturned);
break;
}
}
}