我已经创建了一个自定义的EditTextPreference来在首选项中显示和内联EditText。
当我像这样将它添加到XML资源文件中时:

        <app.FormEntryPreference
            android:key="pref_key"
            android:title="@string/pref_string"/>

我得到这个结果:
它有我想要的风格(android:theme.holo)。
当我按程序添加偏好时:
FormEntryPreference form0 = new FormEntryPreference(getActivity().getApplicationContext(), null);

我得到了不同的结果:
样式将应用于用于EditText的布局资源:
 <EditText
    style="@style/Style.that.inherits.from.holo"
    android:inputType="text"
    android:id="@+id/form_id"
    android:layout_width="match_parent"
    android:layout_height="wrap_content">
</EditText>

我想在这两种情况下都得到同样的形状。

最佳答案

好吧,所以一个同事解决了这个问题,而不是
FormEntryPreference form0 = new FormEntryPreference(getActivity().getApplicationContext(), null);
我只需要删除“getapplicationcontext()”,它的作用就像这样:

FormEntryPreference form0 = new FormEntryPreference(getActivity(), null);

07-25 21:10