提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档
–
提示:以下是本篇文章正文内容,下面案例可供参考
一、sharedpreference介绍
有时候我们想在应用中存储一些数据。比如一些配置信息。 例如存储int,float,boolean,字符串这类 的数据。
写文件可能会比较繁琐。需要自己实现文件读写操作,定义数据存放结构。 对于这些简单的数据,我们 可以用SharedPreferences(下文或简称「sp」)来进行存储。 sp使用的是key-value类型的数据结构。之前接触到的json格式也是key-value类型的。
二、sharedpreference的小Demo
1.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"
tools:context=".MainActivity">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal">
<EditText
android:id="@+id/Edit_Test"
android:layout_width="wrap_content"
android:layout_height="30dp"
android:layout_weight="1"
/>
<TextView
android:id="@+id/Text_Test"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_weight="1" />
</LinearLayout>
<Button
android:id="@+id/read"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="25dp"
android:text="读" />
<Button
android:id="@+id/write"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="25dp"
android:text="写" />
</LinearLayout>
2.MainActivity文件
代码如下(示例):
package com.example.demo2;
import android.app.Activity;
import android.content.SharedPreferences;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.TextView;
import android.widget.Toast;
public class MainActivity extends Activity implements View.OnClickListener{
private EditText editText;
private TextView textView;
private Button write;
private Button read;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
initView();
write.setOnClickListener(this);
read.setOnClickListener(this);
}
private void initView() {
editText=(EditText)findViewById(R.id.Edit_Test);
textView=(TextView)findViewById(R.id.Text_Test);
write=(Button)findViewById(R.id.write);
read=(Button)findViewById(R.id.read);
}
@Override
public void onClick(View v) {
switch (v.getId()){
case R.id.write:
String some=editText.getText().toString();
SharedPreferences pref = MainActivity.this.getSharedPreferences("data",MODE_PRIVATE);
SharedPreferences.Editor editor = pref.edit();
editor.putString("test",some);
editor.commit();
Toast.makeText(MainActivity.this, "写入成功" , Toast.LENGTH_LONG).show();
editText.setText("");
break;
case R.id.read:
SharedPreferences pre = getSharedPreferences("data",MODE_PRIVATE);
String name = pre.getString("Content","");
textView.setText(name);
Toast.makeText(MainActivity.this, "读取成功" , Toast.LENGTH_LONG).show();
break;
}
}
}
运行结果
界面如下
输入之后点击写
,在as的Device File Explorer面板中,我们可以找到xml文 件
或者在命令行 adb 结果如下