6

私のアプリでは設定で EditTextPreference を使用し、Android API uder 11 edittext フィールドでは背景が黒でテキストの色が黒です。EditTextPreferences の背景色を変更するにはどうすればよいですか?

私が試した:テーマで:

<item name="android:editTextPreferenceStyle">@style/EditTextAppTheme</item>

スタイルで:

<style name="EditTextAppTheme" parent="android:Widget.EditText">
      <item name="android:background">@drawable/edit_text_holo_light</item>
      <item name="android:textColor">#000000</item>
  </style>

スタイルを次のように設定した場合:

<style name="EditTextPreferences" parent="android:Preference.DeviceDefault.DialogPreference.EditTextPreference">
      <item name="android:background">@drawable/edit_text_holo_light</item>
      <item name="android:textColor">#FF0000</item>
  </style>

とテーマに:

<item name="android:editTextPreferenceStyle">@style/EditTextPreferences</item>

エラーが発生しました:

error: Error retrieving parent for item: No resource found that matches the given name 'android:Preference.DeviceDefault.DialogPreference.EditTextPreference'.
4

4 に答える 4

0

ハニカムより前のバージョンの背景色を反転して、最初に拡張EditTextPreferenceしてオーバーライドします。onPrepareDialogBuilder

public class CustomEditTextPreference extends EditTextPreference {

    /**
     * Prepares the dialog builder to be shown when the preference is clicked.
     * Use this to set custom properties on the dialog.
     * <p>
     * Do not {@link AlertDialog.Builder#create()} or
     * {@link AlertDialog.Builder#show()}.
     */
    @Override
    protected void onPrepareDialogBuilder(AlertDialog.Builder builder) {
        builder.setInverseBackgroundForced(Build.VERSION.SDK_INT < Build.VERSION_CODES.HONEYCOMB);
    }
}

preferences.xml次に、すべてを交換します

<EditTextPreference ... />

<your.package.CustomEditTextPreference ... />
于 2015-02-02T22:25:49.677 に答える