码迷,mamicode.com
首页 > 移动开发 > 详细

Android Saving Data(一)

时间:2016-12-10 22:06:32      阅读:318      评论:0      收藏:0      [点我收藏+]

标签:over   isp   image   sed   instance   更改   eof   写入   tin   

Saving Key-value Sets  保存键值对

SharedPreferences只能用来保存一些简单的数据,并且这些数据可以是共享的,也可以是私有的。

SharedPreferences没有构造方法,只能同个Context中的getSharePreference获得。

获取共享首选项的句柄


您可以通过调用以下两种方法之一创建新的共享首选项文件或访问现有的文件:

  • getSharedPreferences() — 如果您需要按照您用第一个参数指定的名称识别的多个共享首选项文件,请使用此方法。 您可以从您的应用中的任何 Context 调用此方法。
  • getPreferences() — 如果您只需使用 Activity 的一个共享首选项,请从 Activity 中使用此方法。 因为此方法会检索属于该 Activity 的默认共享首选项文件,您无需提供名称。

例如,以下代码在 Fragment 内执行。它访问通过资源字符串 R.string.preference_file_key 识别的共享首选项文件并且使用专用模式打开它,从而仅允许您的应用访问文件。

例如,以下代码在 Fragment 内执行。它访问通过资源字符串 R.string.preference_file_key 识别的共享首选项文件并且使用专用模式打开它,从而仅允许您的应用访问文件。

Context context = getActivity();
SharedPreferences sharedPref = context.getSharedPreferences(
        getString(R.string.preference_file_key), Context.MODE_PRIVATE);

命名您的共享首选项文件时,您应使用对于您的应用而言唯一可识别的名称,比如 "com.example.myapp.PREFERENCE_FILE_KEY"

或者,如果您只需 Activity 的一个共享首选项文件,您可以使用 getPreferences() 方法:

SharedPreferences sharedPref = getActivity().getPreferences(Context.MODE_PRIVATE);

写入共享首选项


要写入共享首选项文件,请通过对您的 SharedPreferences 调用 edit() 来创建一个 SharedPreferences.Editor

传递您想要使用诸如 putInt()putString() 方法写入的键和值。然后,调用 commit() 以保存所做的更改。例如:

SharedPreferences sharedPref = getActivity().getPreferences(Context.MODE_PRIVATE);
SharedPreferences.Editor editor = sharedPref.edit();
editor.putInt(getString(R.string.saved_high_score), newHighScore);
editor.commit();

从共享首选项读取信息


要从共享首选项文件中检索值,请调用诸如 getInt()getString() 等方法,为您想要的值提供键,并根据需要提供要在键不存在的情况下返回的默认值。例如:

SharedPreferences sharedPref = getActivity().getPreferences(Context.MODE_PRIVATE);
int defaultValue = getResources().getInteger(R.string.saved_high_score_default);
long highScore = sharedPref.getInt(getString(R.string.saved_high_score), defaultValue);



代码:
技术分享
public class MainActivity extends Activity {
    TextView view;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.fragment_layout);
        view=(TextView) findViewById(R.id.textView1);
        Button write=(Button) findViewById(R.id.button1);
        write.setOnClickListener(new OnClickListener() {
            
            @Override
            public void onClick(View arg0) {
                // TODO Auto-generated method stub
                SharedPreferences sp=getPreferences(MODE_PRIVATE);
                Editor editor=sp.edit();
                editor.putInt(getString(R.string.flag), 1);
                editor.commit();
            }
        });
        Button read=(Button) findViewById(R.id.button2);
        read.setOnClickListener(new OnClickListener() {
            
            @Override
            public void onClick(View arg0) {
                // TODO Auto-generated method stub
                SharedPreferences sp=getPreferences(MODE_PRIVATE);
                int defalt=-1;
                int res=sp.getInt(getString(R.string.flag), defalt);
                view.setText(String.valueOf(res));
            }
        });
        
        
    }
}
View Code

 

Android Saving Data(一)

标签:over   isp   image   sed   instance   更改   eof   写入   tin   

原文地址:http://www.cnblogs.com/lichao-normal/p/6157971.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!