您的位置:首页 > Web前端

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

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

/article/5792796.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(),则按意愿逐个清除保存的数据。





                                            
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐