0

この回答のコードを使用しています。

しかし、私が使用するテキストビューにandroid:textColorを設定する代わりに

style="?background_text_color_theme"

アプリケーションのテーマに応じてテキストの色を設定する必要があります(黒のテーマには白のテキスト色、またはその逆)。これは、CheckBoxPreference を除く他のすべての場所で機能します。

私が与えたリンクに加えた変更:

      <TextView android:id="@+android:id/title"
        android:layout_width="wrap_content" android:layout_height="wrap_content"
        android:singleLine="true" 
        android:ellipsize="marquee" android:fadingEdge="horizontal"
        style="?background_text_color_theme" />

ここに私のstyle.xmlがあります:

    <style name="background_text_color_theme_bl">
    <item name="android:textColor">#ffffff</item>

</style>    

     <style name="background_text_color_theme_wh">
    <item name="android:textColor">#000000</item>

</style>    

Themes.Xml:

    <style name="Theme.White"  parent="@android:style/Theme.Holo.Light">
    <item name="background_text_color_theme">@style/background_text_color_theme_wh</item>
</style> 

   <style name="Theme.Black"  parent="@android:style/Theme.Holo">
    <item name="background_text_color_theme">@style/background_text_color_theme_bl</item>
</style>

しかし、スタイルに応じてテキストの色が設定されていないようです。なぜそれが起こっているのか誰にも教えてもらえますか?

ありがとうございました。

4

1 に答える 1

7

これが私がそれをした方法です..誰かが将来それを必要とする場合に備えて。

    public class CheckBoxPreferenceClass extends CheckBoxPreference {


    public CheckBoxPreferenceClass(Context context) {
        super(context);
    }

    public CheckBoxPreferenceClass(Context context, AttributeSet attrs) {
        super(context, attrs);
    }
    public CheckBoxPreferenceClass(Context context, AttributeSet attrs, int defStyle) {
        super(context, attrs, defStyle);
    }

    @Override
    protected void onBindView(View view) {
        super.onBindView(view);
        TextView title = (TextView) view.findViewById(android.R.id.title);
        title.setTextColor(Color.BLACK);
    }

}

そして、設定xmlで、チェックボックスの設定にこれを使用します。

  <packagename.CheckBoxPreferenceClass
        android:key="@string/imp"
        android:title="@string/title"/>
于 2012-11-30T09:02:09.710 に答える