android – 通过代码打开EditTextPreference(以编程方式)

前端之家收集整理的这篇文章主要介绍了android – 通过代码打开EditTextPreference(以编程方式)前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我使EditTextPreference’textPasscode’取决于CheckBoxPreference’checkBoxPasscode’.一旦用户检查复选框,我想要’textPasscode’打开.甚至可以吗?
如果是,在onSharedPreferenceChanged()函数中可以使用什么?
  1. public void onSharedPreferenceChanged(SharedPreferences prefs,String key) {
  2. if(key.contentEquals("checkBoxPasscode")){
  3. // ----some method to open edit text "textPasscode" ??
  4. }
  5. }

感谢名单

解决方法

这个问题对我来说非常烦人,所以在实现Sandor的建议之后,我已经在Android Reference中寻找更好的解决方案,并且看看我发现了什么.
EditTextPreferenceDialogPreference继承,这个类有showDialog方法,所以我用Edit方法从EditTextPreference创建了一个新类,它的作用就像一个charme.

这是一些代码

  1. public class MyEditTextPref extends EditTextPreference {
  2. //...constructor here....
  3.  
  4. public void show() {
  5. showDialog(null);
  6. }
  7. }

在我的settings.xml(我用来生成ActivitySettings布局)我添加了myEditTextPref

  1. <package.that.contains.MyEditTextPreferences
  2. android:key="myPref"
  3. android:title="@string/pref_title"
  4. android:summary="@string/pref_summary"
  5. android:dialogTitle="@string/dialog_title"
  6. android:dialogMessage="@string/dialog_message"
  7. />

最后我做的是PreferenceActivity中的onSharedPreferenceChanged方法

  1. public void onSharedPreferenceChanged(SharedPreferences sharedPreferences,String key) {
  2. if (key.equalsIgnoreCase(MY_CHECK_Box)) {
  3. MyEditTextPreferences myPref = (MyEditTextPreferences) findPreference("myPref");
  4. myPref.show();
  5. }
  6. }

ps:实际上我没有使用PreferenceFragment,因为我想要预蜂窝的兼容性,但我不认为这个代码变化很大.

猜你在找的Android相关文章