当前位置: 代码迷 >> Android >> Android 程式开发:(十七)首选项 —— 17.2 编码兑现获取与修改预设信息中的值
  详细解决方案

Android 程式开发:(十七)首选项 —— 17.2 编码兑现获取与修改预设信息中的值

热度:38   发布时间:2016-05-01 12:43:46.0
Android 程式开发:(十七)首选项 —— 17.2 编码实现获取与修改预设信息中的值

在上一节中,大家已经看到了,PreferenceActivity这个类允许用户在运行时去创建和修改首选项信息。如果想要使用这些首选项信息,你就悬哦使用SharedPreferences这个类。

1. 继续使用上一节中的工程,在UsingPreferences.java中添加一些代码。

public class UsingPreferencesActivity extends Activity {	/** Called when the activity is first created. */	@Override	public void onCreate(Bundle savedInstanceState) {		super.onCreate(savedInstanceState);		setContentView(R.layout.main);	}	public void onClickLoad(View view) {		Intent i = new Intent("net.manoel.AppPreferenceActivity");		startActivity(i);	}	public void onClickDisplay(View view) {		SharedPreferences appPrefs = 				getSharedPreferences("net.manoel.UsingPreferences_preferences", 						MODE_PRIVATE); 		DisplayText(appPrefs.getString("editTextPref", ""));	}	public void onClickModify(View view) {		SharedPreferences appPrefs = 				getSharedPreferences("net.manoel.UsingPreferences_preferences", 						MODE_PRIVATE);				SharedPreferences.Editor prefsEditor = appPrefs.edit();		prefsEditor.putString("editTextPref", 				((EditText) findViewById(R.id.txtString)).getText().toString());		prefsEditor.commit();	}	private void DisplayText(String str) {		Toast.makeText(getBaseContext(), str, Toast.LENGTH_LONG).show();	}}
2. 按F11在模拟器上面调试。这一次点击Display Preferences Values 这个按钮,将会看到:

3. 在EditText中输入一些字符,然后点击Modify Preferences Values按钮。


4. 再次点击Display Preferences Values按钮,可以看到,首选项中的值被更新了。

在onClickDisplay()方法中,使用getSharedPreferences()去获取SharedPreferences类的实例。这里我指定了xml文件的名字“net.manoel.UsingPreferences_preferences”。通常格式是包名_preferences。我还使用了getString()去获取一个字符串,这个字符串作为预设信息的键值:

	public void onClickDisplay(View view) {		SharedPreferences appPrefs = 				getSharedPreferences("net.manoel.UsingPreferences_preferences", 						MODE_PRIVATE); 		DisplayText(appPrefs.getString("editTextPref", ""));	}
MODE_PRIVATE常量说明这个首选项文件只能被创建它的程序打开。

在OnClickModify()方法中,我通过SharedPreferences对象的edit()方法创建了一个SharedPreferences.Editor对象。如果想要改变一个字符串预设值,就用putString()方法。最后,使用commit()方法去保存:

	public void onClickModify(View view) {		SharedPreferences appPrefs = 				getSharedPreferences("net.manoel.UsingPreferences_preferences", 						MODE_PRIVATE);		SharedPreferences.Editor prefsEditor = appPrefs.edit();		prefsEditor.putString("editTextPref", 				((EditText) findViewById(R.id.txtString)).getText().toString());		prefsEditor.commit();	}





  相关解决方案