SharedPreferences 类读写 XML 文件
SharedPreferences 类位于 android.content 包中,是一个接口。如果要写入文件,还需要 SharedPreferences 的内部类 Editor,二者操作的都是 XML 文件。主要用来存储程序的配置信息,是否开启声音、震动、游戏等级、经验等。
通过 Content 类的 getSharedPreferences(String name, int mode) 方法获取实例。
mode 参数:
1、MODE_PRIVATE,声明 SharedPreferences 操作的文件只能供本应用程序使用,其他应用程序无法访问。
2、MODE_WORLD_READABLE,声明 SharedPreferences 操作的文件可以被其他应用程序读,但不能写。
3、MODE_WORLD_WRITEABLE,声明 SharedPreferences 操作的文件可以被其他应用程序读写。
4、MODE_MULTI_PROCESS,不再使用。
Editor 也是一个接口,只能通过 SharedPreferences 类的 edit() 方法获取实例。

 
1 import android.os.Bundle; 2 import android.app.Activity; 3 import android.content.Context; 4 import android.content.SharedPreferences; 5 import android.content.SharedPreferences.Editor; 6 import android.view.Menu; 7 import android.view.View; 8 import android.view.View.OnClickListener; 9 import android.widget.Button; 10 import android.widget.EditText; 11 12 public class MainActivity extends Activity implements OnClickListener{ 13 14 EditText et1,et2; 15 Button b1,b2; 16 SharedPreferences sf; 17 18 @Override 19 protected void onCreate(Bundle savedInstanceState) { 20 super.onCreate(savedInstanceState); 21 22 setContentView(R.layout.activity_main); 23 et1 = (EditText) findViewById(R.id.et_name); 24 et2 = (EditText) findViewById(R.id.et_pwd); 25 b1 = (Button) findViewById(R.id.bt_save); 26 b2 = (Button) findViewById(R.id.bt_read); 27 b1.setOnClickListener(this); 28 b2.setOnClickListener(this); 29 30 // 获取 SharedPreferences 实例,读写 login.xml 文件,方式为独占 31 sf = getSharedPreferences("login", Context.MODE_PRIVATE); 32 } 33 34 @Override 35 public void onClick(View view) { 36 37 switch(view.getId()){ 38 case R.id.bt_save: 39 save(); 40 break; 41 case R.id.bt_read: 42 read(); 43 break; 44 } 45 } 46 47 // 读取文件 48 private void read() { 49 50 // 读取字符串 51 String name = sf.getString("name", "请输入新登录名"); 52 String pwd = sf.getString("pwd", ""); 53 et1.setText(name); 54 et2.setText(pwd); 55 } 56 57 // 保存文件 58 private void save() { 59 60 // 获取 Editor 实例 61 Editor et = sf.edit(); 62 // 保存字符串 63 et.putString("name", et1.getEditableText().toString()); 64 et.putString("pwd", et2.getEditableText().toString()); 65 // 提交 66 et.commit(); 67 // 清空 68 et1.setText(""); 69 et2.setText(""); 70 } 71 }
布局文件
 
1 <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 2 xmlns:tools="http://schemas.android.com/tools" 3 android:layout_width="match_parent" 4 android:layout_height="match_parent" 5 android:paddingBottom="@dimen/activity_vertical_margin" 6 android:paddingLeft="@dimen/activity_horizontal_margin" 7 android:paddingRight="@dimen/activity_horizontal_margin" 8 android:paddingTop="@dimen/activity_vertical_margin" 9 tools:context=".MainActivity" > 10 11 <TextView 12 android:id="@+id/tv_name" 13 android:layout_width="wrap_content" 14 android:layout_height="wrap_content" 15 android:text="账户:" /> 16 <EditText 17 android:layout_width="match_parent" 18 android:layout_height="wrap_content" 19 android:id="@+id/et_name" 20 android:layout_toRightOf="@id/tv_name" 21 /> 22 <TextView 23 android:id="@+id/tv_pwd" 24 android:layout_width="wrap_content" 25 android:layout_height="wrap_content" 26 android:text="密码:" 27 android:layout_below="@id/et_name" 28 /> 29 <EditText 30 android:layout_width="match_parent" 31 android:layout_height="wrap_content" 32 android:id="@+id/et_pwd" 33 android:layout_below="@id/et_name" 34 android:layout_alignLeft="@id/et_name" 35 android:inputType="textPassword" 36 /> 37 38 <LinearLayout 39 android:orientation="horizontal" 40 android:layout_width="fill_parent" 41 android:layout_height="wrap_content" 42 android:gravity="center_horizontal" 43 android:layout_below="@id/et_pwd" 44 > 45 <Button 46 android:id="@+id/bt_save" 47 android:layout_width="wrap_content" 48 android:layout_height="wrap_content" 49 android:text="保存" 50 /> 51 <Button 52 android:id="@+id/bt_read" 53 android:layout_width="wrap_content" 54 android:layout_height="wrap_content" 55 android:text="读取" 56 /> 57 58 </LinearLayout> 59 60 61 62 </RelativeLayout>
DDMS/File Explorer
data/data/包名/shared_prefs/login.xml
1 <?xml version='1.0' encoding='utf-8' standalone='yes' ?> 2 <map> 3 <string name="pwd">123</string> 4 <string name="name">123</string> 5 </map>
 
                    
                
 
 
 
                
            
         浙公网安备 33010602011771号
浙公网安备 33010602011771号