PreferenceActivity、SharedPreferences——开源项目Standup Timer学习总结(四)

PreferenceActivity通常用在设置界面,用于保存设置的状态数据。在网上看到一篇文章总结得很好,这里就不再总结了。

http://www.cnblogs.com/wservices/archive/2010/07/08/1773449.html

http://www.cnblogs.com/keyindex/articles/1814506.html

 

       下面,我自己编写了一个例子用于加深对SharedPreferences的理解。通常使用这个类来保持用户输入的数据,希望程序再次启动的时候,还能够得到用户上次输入的数据。废话少说,看代码:

通过以下的例子也学习了如何使用Spinner(下拉菜单)

package kaven.org;

import android.app.Activity;
import android.content.SharedPreferences;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.ArrayAdapter;
import android.widget.Button;
import android.widget.EditText;
import android.widget.Spinner;
import android.widget.TextView;

public class PreferenceTestActivity extends Activity {
	
	
	private final String NAME =  "username" ;
	private final String POSITION = "position";
	private Button saveButton = null;
	private Button removeButton = null;
	private int countryPosition = 0;
	
    /** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
        
        initializeUI();//初始化UI
        
        saveButton  = (Button)findViewById(R.id.button1);
        removeButton = (Button)findViewById(R.id.button2);
        
        saveButton.setOnClickListener(new OnClickListener() {
			@Override
			public void onClick(View v) {
				// TODO Auto-generated method stub
				saveData();
			}
		});
        removeButton.setOnClickListener(new OnClickListener() {
			@Override
			public void onClick(View v) {
				// TODO Auto-generated method stub
				removeData();
			}
		});
    }
    
    public void initializeUI(){
    	TextView text = (TextView)findViewById(R.id.editText1);
    	Spinner spinner = (Spinner)findViewById(R.id.spinner_1);
    	SharedPreferences pre = getPreferences(MODE_PRIVATE);
    	text.setText(pre.getString(NAME, "Kaven")); //初始化编辑框显示 
    	
    	ArrayAdapter adapter = ArrayAdapter.createFromResource(this, R.array.country, android.R.layout.simple_spinner_item);
    	adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
    	spinner.setAdapter(adapter);
    	spinner.setSelection(pre.getInt(POSITION, 0)); //设置初始化下拉菜单的显示内容
    }
    
    public void saveData(){
    	SharedPreferences.Editor editor = getPreferences(MODE_PRIVATE).edit();
    	
    	EditText text = (EditText)findViewById(R.id.editText1);
    	editor.putString(NAME, text.getText().toString());
    	
    	Spinner spinner = (Spinner)findViewById(R.id.spinner_1);
    	countryPosition = spinner.getSelectedItemPosition();//获得所选Item的Position
    	editor.putInt(POSITION, countryPosition);
    	
    	editor.commit();   	
    }
    public void removeData(){
    	SharedPreferences.Editor editor = getPreferences(MODE_PRIVATE).edit();
    	//移除指定的数据
    	//editor.remove(NAME);
    	//移除Preference里的所有数据
    	editor.clear();
    	//修改数据之后,记得调用这个方法保存数据
    	editor.commit();
    	initializeUI();//还原默认值
    }
    
}


array.xml文件:


    
        China
        American
        England
       




     程序启动的时候,调用initializeUI(),用于初始化所有用户需要输入的内容,getString(NAME,“Kaven”),当SharedPreferences里存有数据的时候,则取出保存的数据,如果没有则显示“Kaven”。getInt("position", 0),存有相应的数据时,则取出position对应的值,否则为0.

     点击保存,保存当前编辑框和下拉菜单的数据。点击清除,则清除所有保持在SharedPreferences中的数据,因为这里使用的是clear(),如果使用remove(),则按意愿逐个清除保存的数据。


 

 
  
 
  
 
  
 
 

你可能感兴趣的:(Android,数据存储,timer,button,import,string,class,null)