`
myclover
  • 浏览: 191255 次
  • 性别: Icon_minigender_1
  • 来自: 成都
社区版块
存档分类
最新评论

android中SharedPreferences的实例

阅读更多
第六课,SharedPreferences的讲解,SharedPreferences是以xml文件来进行存储的,在手机应用中很多设置文件的存储就是使用SharedPreferences实现的。
package com.myclover.sharedpreferences;

import android.app.Activity;
import android.content.Context;
import android.content.SharedPreferences;
import android.content.SharedPreferences.Editor;
import android.os.Bundle;
import android.util.Log;
import android.view.View;
import android.widget.Button;
import android.widget.CompoundButton;
import android.widget.CompoundButton.OnCheckedChangeListener;
import android.widget.EditText;
import android.widget.RadioButton;

public class SharedPreferencesActivity extends Activity {
	private static final String TAG = "SharedPreferencesActivity";
	
	private EditText name;
	private EditText age;
	private EditText amount;
	private static String sex;
	private RadioButton male;
	private RadioButton female;
	

	@Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
        
        name = (EditText)findViewById(R.id.name);
        age = (EditText)findViewById(R.id.age);
        amount = (EditText)findViewById(R.id.amount);
        male = (RadioButton)findViewById(R.id.male);
        female = (RadioButton)findViewById(R.id.female);
        Button save = (Button)findViewById(R.id.save);
        Button query = (Button)findViewById(R.id.query);
        RadioButton male = (RadioButton)findViewById(R.id.male);
        RadioButton female = (RadioButton)findViewById(R.id.female);
        save.setOnClickListener(listener);
        query.setOnClickListener(listener);
        male.setOnCheckedChangeListener(changeListsner);
        female.setOnCheckedChangeListener(changeListsner);
    }
	
	
	private View.OnClickListener listener = new View.OnClickListener() {
		@Override
		public void onClick(View v) {
			Button bid = (Button)v;
			
			//文件所在的路径/data/data/com.myclover.sharedpreferences/shared_prefs/
			//执行该行代码默认在应用中创建一个以myclover命名的一个xml文件,myclover.xml
			//android底层是使用Pull技术把内容保存到XML文件中,为了确保全部内容都保存成功,所以最后需要调用commit方法进行提交
			SharedPreferences sp = SharedPreferencesActivity.this.getSharedPreferences("myclover", Context.MODE_PRIVATE);
			//执行该行代码默认在应用中创建一个以activity名称命名的一个xml文件,SharedPreferencesActivity.xml
//			SharedPreferences sp = SharedPreferencesActivity.this.getPreferences(Context.MODE_APPEND);
			
			Log.i(TAG, "click id = " + bid.getId());
			switch (bid.getId()) {
			case R.id.save:
				String inName = name.getText().toString();
				String inAge = age.getText().toString();
				String inAmount = amount.getText().toString();
				Editor edit = sp.edit();
				edit.putString("name", inName);
				edit.putString("sex", sex);
				edit.putInt("age", Integer.parseInt(inAge));
				edit.putLong("amount", Long.parseLong(inAmount));
				edit.commit();
				break;
			case R.id.query:
				name.setText(sp.getString("name", "myclover"));
				age.setText(String.valueOf(sp.getInt("age", 24)));
				amount.setText(String.valueOf(sp.getLong("amount", 10000)));
				if("male".equals(sp.getString("sex", "male")))
				{
					male.setChecked(true);
					female.setChecked(false);
				}
				else
				{
					male.setChecked(false);
					female.setChecked(true);
				}
				break;
			}
		}
	};
	
	
	private OnCheckedChangeListener changeListsner = new OnCheckedChangeListener()
    {
		@Override
		public void onCheckedChanged(CompoundButton buttonView,
				boolean isChecked) {
			RadioButton rid = (RadioButton)buttonView;
			Log.i(TAG, "change rid = " + rid.getId());
			switch (rid.getId()) {
			case R.id.male:
				if(isChecked)
				{
					male.setChecked(true);
					female.setChecked(false);
					sex = "male";
				}
				else
				{
					male.setChecked(false);
				}
				break;
			case R.id.female:
				if(isChecked)
				{
					male.setChecked(false);
					female.setChecked(true);
					sex = "female";
				}
				else
				{
					female.setChecked(false);
				}
				break;
			}
		}
    };
	
}
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics