WEB开发网
开发学院手机开发Android 开发 Android EditTextPreference 小记 阅读

Android EditTextPreference 小记

 2010-11-05 00:56:18 来源:WEB开发网   
核心提示:setPreferenceScreen(createPreferenceHierarchy());}private PreferenceScreen createPreferenceHierarchy() {// RootPreferenceScreen root = getPreferenceManager().cr

setPreferenceScreen(createPreferenceHierarchy());

}

private PreferenceScreen createPreferenceHierarchy() {

// Root

PreferenceScreen root = getPreferenceManager().createPreferenceScreen(this);

// Dialog based preferences

PreferenceCategory dialogBasedPrefCat = new PreferenceCategory(this);

dialogBasedPrefCat.setTitle(R.string.tel);

root.addPreference(dialogBasedPrefCat);

// Edit text preference

final EditTextPreference editTextPref = new EditTextPreference(this);

editTextPref.setDialogTitle(R.string.tel);

editTextPref.setKey("SEYA_KEY");

editTextPref.setTitle(R.string.tel);

//get saved tel number and set it to current text view.

editTextPref.setSummary(editTextPref.getText());

dialogBasedPrefCat.addPreference(editTextPref);

editTextPref.setOnPreferenceChangeListener(new Preference.OnPreferenceChangeListener() {

@Override

public boolean onPreferenceChange(Preference preference, Object newValue) {

editTextPref.setSummary(newValue.toString());

return true;

}

}

);

return root;

}

}

实际运行时却发现进入该页面的时候取不到之前存储的号码,但在弹出框里面却能够显示之前存储的号码。经过几次三番的调试,发现是取值时间的问题,把editTextPref.setSummary(editTextPref.getText());

放在dialogBasedPrefCat.addPreference(editTextPref);之后调用就好了。感觉是在 addPreference(...)之后editTextPref才获取到text的值的。正好手边有android sdk的源码,便分析了以下。分析后发现的确如此。

上一页  1 2 

Tags:Android EditTextPreference 小记

编辑录入:coldstar [复制链接] [打 印]
赞助商链接