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

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

感谢名单

解决方法

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

这是一些代码

public class MyEditTextPref extends EditTextPreference {
    //...constructor here....

    public void show() {
        showDialog(null);
    }
}

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

<package.that.contains.MyEditTextPreferences 
    android:key="myPref"
    android:title="@string/pref_title"
    android:summary="@string/pref_summary"
    android:dialogTitle="@string/dialog_title"
    android:dialogMessage="@string/dialog_message"
/>

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

public void onSharedPreferenceChanged(SharedPreferences sharedPreferences,String key) {
    if (key.equalsIgnoreCase(MY_CHECK_Box)) {
        MyEditTextPreferences myPref = (MyEditTextPreferences) findPreference("myPref");
        myPref.show();
    }
}

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

原文链接:https://www.f2er.com/android/312901.html

猜你在找的Android相关文章