android 의 Shared Preferences 인 스 턴 스

4813 단어 androidxmlOS
제6 과 Shared Preferences 의 설명 에 따 르 면 Shared Preferences 는 xml 파일 로 저 장 됩 니 다.모 바 일 애플 리 케 이 션 에서 많은 설정 파일 의 저장 은 Shared Preferences 를 사용 하여 이 루어 집 니 다.

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;
			}
		}
    };
	
}

좋은 웹페이지 즐겨찾기