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

本文介绍了一个使用SharedPreferences保存和读取用户输入数据的示例。通过该示例,读者可以了解到如何利用Spinner组件和SharedPreferences来实现简单的设置界面,使得应用程序能够在下次启动时记住用户的偏好设置。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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<CharSequence> 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文件:

<resources>
    <string-array name="country">
        <item>China</item>
        <item >American</item>
        <item >England</item>
    </string-array>   
</resources>




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

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


 





评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值