Android软件开发之数据的新建 储存 读取 删除


1.使用SharedPreferences处理数据的 新建 储存 读取 删除


        SharedPreferences保存后生成的是XML文件,内容是以节点的形势保存在文件中,SharedPreferences类提供了非常丰富的处理数据的方法下面我向大家介绍一下如何使用SharedPreferences来处理数据。


输入须要保存的内容




输入姓名:雨松MOMO
输入号码:15810463139





点击保存成功


   
        保存成功以后,数据被保存到了data路径下 /当前包名 (红框内的包名是我的程序包名) /shared_prefs/main.xml中 , 使用EditPlus 打开保存的内容,我们可以清晰的看到内容是以一个节点一个节点的形式存在XML中。




         SharedPreferences类中提供了非常方便方法去保存数据与读取数据大家请看下面的代码片段,一个程序中可以存在多个SharedPreferences保存的XML文件 ,代码中只须要根据不同的XML名称就可以通过方法拿到相应的对象,由于它的批量遍历查找,当然这样的作法肯定没有数据库更方便快捷,所以在开发中处理一些比较小的零碎的数据就可以保存在这里,比如说记录软件中用户设置的音量大小,用户输入的查找信息等等都可以存在SharedPreferences中。  
  1. public class SPActivity extends Activity {  
  2.      
  3.     /**使用SharedPreferences 来储存与读取数据**/  
  4.     SharedPreferences mShared = null;  
  5.   
  6.     /**程序中可以同时存在多个SharedPreferences数据, 根据SharedPreferences的名称就可以拿到对象**/  
  7.     public final static String SHARED_MAIN = "main";  
  8.      
  9.     /**SharedPreferences中储存数据的Key名称**/  
  10.     public final static String KEY_NAME = "name";  
  11.     public final static String KEY_NUMBER = "number";  
  12.       
  13.     /**SharedPreferences中储存数据的路径**/  
  14.     public final static String DATA_URL = "/data/data/";  
  15.     public final static String SHARED_MAIN_XML = "main.xml";  
  16.       
  17.       
  18.     @Override  
  19.     protected void onCreate(Bundle savedInstanceState) {  
  20.     setContentView(R.layout.sharedpreferences);  
  21.     /**拿到名称是SHARED_MAIN 的SharedPreferences对象**/  
  22.     mShared = getSharedPreferences(SHARED_MAIN, Context.MODE_PRIVATE);  
  23.     /**拿到SharedPreferences中保存的数值 第二个参数为如果SharedPreferences中没有保存就赋一个默认值**/  
  24.     String name = mShared.getString(KEY_NAME, "数据库中没有储存姓名");  
  25.     String number = mShared.getString(KEY_NUMBER, "数据库中没有储存号码");  
  26.       
  27.     final EditText editName = (EditText)findViewById(R.id.sp_et0);  
  28.     final EditText editNumber = (EditText)findViewById(R.id.sp_et1);  
  29.     editName.setHint("上次输入的姓名为【 " +name+"】");  
  30.     editNumber.setHint("上次输入的号码为【 " +number+"】");  
  31.       
  32.     Button button0 = (Button)findViewById(R.id.sp_button0);  
  33.       
  34.     /**监听按钮点击后保存用户输入信息到SharedPreferences中**/  
  35.     button0.setOnClickListener(new  OnClickListener() {  
  36.           
  37.         @Override  
  38.         public void onClick(View arg0) {  
  39.         /**拿到用户输入的信息**/  
  40.         String name = editName.getText().toString();  
  41.         String number = editNumber.getText().toString();  
  42.         /**开始保存入SharedPreferences**/  
  43.         Editor editor = mShared.edit();  
  44.         editor.putString(KEY_NAME, name);  
  45.         editor.putString(KEY_NUMBER, number);  
  46.         /**put完毕必需要commit()否则无法保存**/  
  47.         editor.commit();  
  48.         ShowDialog("保存SharedPreferences成功");  
  49.           
  50.         }  
  51.     });  
  52.       
  53.     Button button1 = (Button)findViewById(R.id.sp_button1);  
  54.     button1.setOnClickListener(new  OnClickListener() {  
  55.           
  56.         @Override  
  57.         public void onClick(View arg0) {  
  58.         /**开始清除SharedPreferences中保存的内容**/  
  59.         Editor editor = mShared.edit();  
  60.         editor.remove(KEY_NAME);  
  61.         editor.remove(KEY_NUMBER);  
  62.         //editor.clear();   
  63.         editor.commit();  
  64.         ShowDialog("清除SharedPreferences数据成功");  
  65.         }  
  66.     });  
  67.       
  68.     Button button2 = (Button)findViewById(R.id.sp_button2);  
  69.     button2.setOnClickListener(new OnClickListener() {  
  70.   
  71.         @Override  
  72.         public void onClick(View arg0) {  
  73.         /** 删除SharedPreferences文件 **/  
  74.         File file = new File(DATA_URL + getPackageName().toString()  
  75.             + "/shared_prefs", SHARED_MAIN_XML);  
  76.         if (file.exists()) {  
  77.             file.delete();  
  78.         }  
  79.         ShowDialog("删除SharedPreferences文件成功");  
  80.         }  
  81.     });  
  82.       
  83.       
  84.     super.onCreate(savedInstanceState);  
  85.     }  
  86.   
  87.     public void ShowDialog(String string) {  
  88.     AlertDialog.Builder builder = new AlertDialog.Builder(SPActivity.this);  
  89.     builder.setIcon(R.drawable.icon);  
  90.     builder.setTitle(string);  
  91.     builder.setPositiveButton("确定"new DialogInterface.OnClickListener() {  
  92.         public void onClick(DialogInterface dialog, int whichButton) {  
  93.         finish();  
  94.         }  
  95.     });  
  96.     builder.show();  
  97.     }  
  98. }  

 
  1. <?xml version="1.0" encoding="utf-8"?>  
  2.   
  3. <LinearLayout xmlns:Android="http://schemas.android.com/apk/res/android"  
  4.     android:layout_width="fill_parent"   
  5.     android:layout_height="fill_parent"  
  6.     android:orientation="vertical"  
  7.     >  
  8.     <ImageView android:id="@+id/sp_image"  
  9.         android:layout_width="wrap_content"  
  10.          android:layout_height="wrap_content"  
  11.         android:src="@drawable/image"  
  12.         android:layout_gravity="center"  
  13.         />  
  14.     <EditText android:id="@+id/sp_et0"  
  15.               android:layout_width="fill_parent"  
  16.               android:layout_height="wrap_content"  
  17.               android:hint="请输入你的姓名">  
  18.     </EditText>  
  19.     <EditText android:id="@+id/sp_et1"  
  20.               android:layout_width="fill_parent"  
  21.               android:layout_height="wrap_content"  
  22.               android:hint="请输入你的号码">  
  23.     </EditText>  
  24.     <Button   android:id="@+id/sp_button0"  
  25.               android:layout_width="wrap_content"  
  26.               android:layout_height="wrap_content"  
  27.               android:text="保存输入内容shared">  
  28.     </Button>  
  29.     <Button   android:id="@+id/sp_button1"  
  30.               android:layout_width="wrap_content"  
  31.               android:layout_height="wrap_content"  
  32.               android:text="清除shared保存内容">  
  33.     </Button>  
  34.     <Button   android:id="@+id/sp_button2"  
  35.               android:layout_width="wrap_content"  
  36.               android:layout_height="wrap_content"  
  37.               android:text="删除shared文件">  
  38.     </Button>  
  39. </LinearLayout>  
  • 1
  • 2
  • 3
  • 4
  • 下一页

相关内容