星空网 > 软件开发 > 操作系统

android之sharedpreference的两种使用方法

sharedPreferences的介绍:

1.sharedPreferences是一种轻型的数据存储方式,它的本质是基于

2.sharedpreferences对象对比sqlite数据库,免去了创建数据库,创建表,写SQL语句等操作,更加易用,但sharedpreference仅支持以下数据类型

boolean  int   float   long   String

但是无法进行条件查询等,所以不论sharedpreference的数据存储是如何简单,它也只能是存储方式的一种补充,而无法完全替代如sqlite数据库等其他数据存储方式。

3.sharedPreferences的使用:包含两种方法:直接使用和通过

(1)直接使用:

  a.首先定义一个SharedPreferences对象以及Editor对象,因为我们知道SharedPreferences对象是通过Editor对象来修改的:

private SharedPreferences preferences;
private SharedPreferences.Editor editor;
  b.对定义的两个对象初始化:我们看到prefrences通过getPreferences()和传入一个MODE_PRIVATE来获取,其实传入的参数有两个,MODE_PRIVATE表示为默认,还有个参数为MODE_MULTI_PROCESS,这个一般用于会有多个进程对同一个sharedpreference进行读写的情况下
preferences=getPreferences(MODE_PRIVATE);
editor=preferences.edit();
  c.进行读写操作:
   写操作:使用起来很简单,只要通过editor调用putstring函数来添加数据,然后再调用commit即可。
private String KEY="myKey";
editor.putString(KEY,editText.getText().toString());
if (editor.commit()){
Toast.makeText(MainActivity.this,"写入成功",Toast.LENGTH_SHORT).show();
}
   读操作:使用preference对象通过getstring函数,第一个参数为我们写操作时设定的KEY值,第二参数为数据不存在时,默认值
String data=preferences.getString(KEY,"数据不存在");
Toast.makeText(MainActivity.this,data,Toast.LENGTH_SHORT).show();
  d.完整代码如下:
MainActivity.java
android之sharedpreference的两种使用方法images/loading.gif' data-original="http://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif" >android之sharedpreference的两种使用方法
 1 package base.learnsharedprefence; 2  3 import android.content.Intent; 4 import android.content.SharedPreferences; 5 import android.preference.PreferenceActivity; 6 import android.support.v7.app.AppCompatActivity; 7 import android.os.Bundle; 8 import android.view.View; 9 import android.widget.EditText;10 import android.widget.Toast;11 12 public class MainActivity extends AppCompatActivity implements View.OnClickListener {13   private SharedPreferences preferences;14   private SharedPreferences.Editor editor;15   private EditText editText;16   private String KEY="myKey";17   @Override18   protected void onCreate(Bundle savedInstanceState) {19     super.onCreate(savedInstanceState);20     setContentView(R.layout.activity_main);21     preferences=getPreferences(MODE_PRIVATE);22     editor=preferences.edit();23     editText= (EditText) findViewById(R.id.edit);24     findViewById(R.id.btnRead).setOnClickListener(this);25     findViewById(R.id.btnWrite).setOnClickListener(this);26     findViewById(R.id.btnJump).setOnClickListener(this);27   }28 29   @Override30   public void onClick(View v) {31     switch (v.getId()){32       case R.id.btnRead:33         String data=preferences.getString(KEY,"数据不存在");34         Toast.makeText(MainActivity.this,data,Toast.LENGTH_SHORT).show();35         break;36       case R.id.btnWrite:37         editor.putString(KEY,editText.getText().toString());38         if (editor.commit()){39           Toast.makeText(MainActivity.this,"写入成功",Toast.LENGTH_SHORT).show();40         }41         break;42       case R.id.btnJump:43         startActivity(new Intent(MainActivity.this, MyPreferenceActivity.class));44         break;45     }46   }47 }

View Code

布局文件:

android之sharedpreference的两种使用方法android之sharedpreference的两种使用方法
 1 <??> 2 <LinearLayout ="http://schemas.android.com/apk/res/android" 3   ="http://schemas.android.com/tools" 4   android:layout_width="match_parent" 5   android:layout_height="match_parent" 6   android:orientation="vertical" 7   tools:context="base.learnsharedprefence.MainActivity"> 8  9   <EditText10     android:textSize="20sp"11     android:id="@+id/edit"12     android:layout_width="match_parent"13     android:layout_height="wrap_content" />14   <Button15     android:textSize="20sp"16     android:text="@string/read"17     android:id="@+id/btnRead"18     android:layout_width="match_parent"19     android:layout_height="wrap_content" />20   <Button21     android:id="@+id/btnWrite"22     android:text="@string/write"23     android:textSize="20sp"24     android:layout_width="match_parent"25     android:layout_height="wrap_content" />26   <Button27     android:textSize="20sp"28     android:text="@string/preferenceactivity"29     android:id="@+id/btnJump"30     android:layout_width="match_parent"31     android:layout_height="wrap_content" />32 </LinearLayout>

View Code

  e.效果图:

  android之sharedpreference的两种使用方法

  d.查看方式:点击问号左边图标,知道data/data/包名/shared_prefs,右上角可以导出到电脑中查看

  android之sharedpreference的两种使用方法

  android之sharedpreference的两种使用方法

(2)通过

  a.先在res目录下创建一个

checkboxpreference:

<CheckBoxPreference            
android:key="checkbox"
android:title="是否开启"
android:summaryOn="已经开启"
android:summaryOff="已经关闭"
/>                  

android之sharedpreference的两种使用方法

第一个参数为key值,必须要定义,剩下的三个参数对比图像应该很清楚。

listpreference:

<ListPreference
android:key="list"
android:title="选择一个选项"
android:summary="请点击选择"
android:entries="@array/entries"
android:entryValues="@array/values"/>

android之sharedpreference的两种使用方法  

android之sharedpreference的两种使用方法

第一个参数也是为key,必须定义,title和summary属性很清楚,主要是entries和entryvalues这两个属性,我们可以看到他们都是调用了array中的内容,所以我们是要先在res/values/下定义一个android之sharedpreference的两种使用方法android之sharedpreference的两种使用方法

 1 <??> 2 <resources> 3   <string-array name="entries"> 4     <item>Java</item> 5     <item>Swift</item> 6     <item>C#</item> 7   </string-array> 8   <string-array name="values"> 9     <item>Eclips</item>10     <item>Xcode</item>11     <item>Visual Studio</item>12   </string-array>13 </resources>

View Code

edittextpreference:

<EditTextPreference
android:key="edit"
android:dialogTitle="请输入你的名字"
android:dialogMessage="有劳了"
android:summary="请在此处输入"
android:title="请输入"/>

android之sharedpreference的两种使用方法

android之sharedpreference的两种使用方法

 b.实现完布局文件后,我们就要是去加载它,创建一个类继承PreferenceActivity

  (1)定义控件和管理者:

private PreferenceManager manager;
private CheckBoxPreference checkBoxPreference;
private ListPreference listPreference;
private EditTextPreference editTextPreference;
(2)加载定义的布局文件:
addPreferencesFromResource(R. (3)实例化控件:我们可以看到实例化方式和普通控件的实例化方式有些不同,这里传入的是一个字符串,即是KEY值,所以我们之前在布局文件中强调一定要定义KEY值就是为了之后的实例化使用
manager=getPreferenceManager();
checkBoxPreference= (CheckBoxPreference)manager.findPreference("checkbox");
listPreference= (ListPreference) manager.findPreference("list");
editTextPreference= (EditTextPreference) manager.findPreference("edit");

 (4)获取到相关数据,并打印出来:

System.out.println("当前状态为:"+checkBoxPreference.isChecked());
System.out.println(listPreference.getEntry()+"的开发环境是"+listPreference.getValue());
System.out.println("你输入的内容是"+editTextPreference.getText());
(5)最好注意要在mainfest定义:
<activity android:name=".MyPreferenceActivity"/>

完整代码:
MyPreferenceActivity:
android之sharedpreference的两种使用方法android之sharedpreference的两种使用方法
 1 package base.learnsharedprefence; 2  3 import android.os.Bundle; 4 import android.preference.CheckBoxPreference; 5 import android.preference.EditTextPreference; 6 import android.preference.ListPreference; 7 import android.preference.PreferenceActivity; 8 import android.preference.PreferenceManager; 9 import android.widget.Toast;10 11 public class MyPreferenceActivity extends PreferenceActivity {12   private PreferenceManager manager;13   private CheckBoxPreference checkBoxPreference;14   private ListPreference listPreference;15   private EditTextPreference editTextPreference;16   @Override17   protected void onCreate(Bundle savedInstanceState) {18     super.onCreate(savedInstanceState);19     addPreferencesFromResource(R.20     manager=getPreferenceManager();21     checkBoxPreference= (CheckBoxPreference)manager.findPreference("checkbox");22     listPreference= (ListPreference) manager.findPreference("list");23     editTextPreference= (EditTextPreference) manager.findPreference("edit");24     System.out.println("当前状态为:"+checkBoxPreference.isChecked());25     System.out.println(listPreference.getEntry()+"的开发环境是"+listPreference.getValue());26     System.out.println("你输入的内容是"+editTextPreference.getText());27   }28 }

View Code

mypreference.android之sharedpreference的两种使用方法android之sharedpreference的两种使用方法

 1 <??> 2 <PreferenceScreen ="http://schemas.android.com/apk/res/android"> 3   <CheckBoxPreference 4     android:key="checkbox" 5     android:title="是否开启" 6     android:summaryOn="已经开启" 7     android:summaryOff="已经关闭" 8     /> 9   <ListPreference10     android:key="list"11     android:title="选择一个选项"12     android:summary="请点击选择"13     android:entries="@array/entries"14     android:entryValues="@array/values"/>15   <EditTextPreference16     android:key="edit"17     android:dialogTitle="请输入你的名字"18     android:dialogMessage="有劳了"19     android:summary="请在此处输入"20     android:title="请输入"/>21 </PreferenceScreen>

View Code

 

 

 

 

 

 



 




原标题:android之sharedpreference的两种使用方法

关键词:Android

*特别声明:以上内容来自于网络收集,著作权属原作者所有,如有侵权,请联系我们: admin#shaoqun.com (#换成@)。
相关文章
我的浏览记录
最新相关资讯
海外公司注册 | 跨境电商服务平台 | 深圳旅行社 | 东南亚物流