2013-10-31 10 views
5

私は主なアクティビティビューに3つのシンプルなボタンがあります。 私がしようとしているのは、すべてのボタンにbuttonstyleを適用することですが、私はそうしません。ここでボタンのAndroidテーマスタイルは適用されません

は私のxmlです:

<application 
    android:allowBackup="true" 
    android:icon="@drawable/ic_launcher" 
    android:label="@string/app_name" 
    android:theme="@style/AppTheme" > 
.... 
:マニフェストファイルから

<resources xmlns:android="http://schemas.android.com/apk/res/android"> 

    <style name="AppBaseTheme" parent="android:Theme.Light"> 
    </style> 

    <!-- Application theme. --> 
    <style name="AppTheme" parent="AppBaseTheme"> 
     <item name="android:buttonStyle">@style/ButtonTheme</item> 
    </style> 

    <style name="ButtonTheme" parent="android:Widget.Button"> 
     <item name="android:textColor">@android:color/white</item> 
     <item name="android:background">@android:color/darker_gray</item> 
     <item name="android:typeface">monospace</item> 
     <item name="android:textSize">32sp</item> 
    </style> 
</resources> 

そして、私のテーマ定義:RESから

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    xmlns:tools="http://schemas.android.com/tools" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:background="@drawable/minecraft_portrait" 
    android:alpha="0.75" 
    android:paddingBottom="@dimen/activity_vertical_margin" 
    android:paddingLeft="@dimen/activity_horizontal_margin" 
    android:paddingRight="@dimen/activity_horizontal_margin" 
    android:paddingTop="@dimen/activity_vertical_margin" 
    tools:context=".MainActivity" > 

    <TextView 
     android:id="@+id/txtAppName" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_alignParentTop="true" 
     android:layout_centerHorizontal="true" 
     android:text="@string/app_name_readable" 
     android:textSize="32sp" 
     android:textColor="@android:color/white" /> 

    <Button 
     android:id="@+id/btnCrafting" 
     android:layout_width="200dp" 
     android:layout_height="wrap_content" 
     android:layout_centerHorizontal="true" 
     android:layout_centerVertical="true" 
     android:background="@drawable/button_selector" 
     android:onClick="craftingButtonClicked" 
     android:text="@string/crafting" /> 

    <Button 
     android:id="@+id/btnServerCommands" 
     android:layout_width="200dp" 
     android:layout_height="wrap_content" 
     android:layout_alignLeft="@id/btnCrafting" 
     android:layout_below="@id/btnCrafting" 
     android:layout_marginTop="20dp" 
     android:background="@drawable/button_selector" 
     android:onClick="commandsButtonClicked" 
     android:textColor="@android:color/white" 
     android:text="@string/servercommands" /> 

    <Button 
     android:id="@+id/btnVideos" 
     android:layout_width="200dp" 
     android:layout_height="wrap_content" 
     android:layout_alignLeft="@id/btnServerCommands" 
     android:layout_below="@id/btnServerCommands" 
     android:layout_marginTop="20dp" 
     android:background="@drawable/button_selector" 
     android:onClick="videosButtonClicked" 
     android:text="@string/videos" /> 

</RelativeLayout> 

そして、これは私のstyle.xmlある/フォルダ値

スタイルが自分のボタンに適用されない理由は何ですか? 違いを見るために、ボタンのテキストカラーを白に設定しました。

+0

と。 – Bracadabra

答えて

33

サポートライブラリを使用する場合は、ボタンのスタイルは次のように適用する必要があります。あなたの活動は、アプリのテーマをオーバーライドするかもしれませ

<!-- Application theme. --> 
<style name="AppTheme" parent="AppBaseTheme"> 
    <item name="android:buttonStyle">@style/ButtonTheme</item> 
    <item name="buttonStyle">@style/ButtonTheme</item> 
</style> 

注重複しかし、誰の名前空間

+0

ありがとうございます。これは受け入れられた答えでなければなりません。 –

+0

それは働いた! Robbieさん、この回答を受け入れてください。とても役に立ちます。 – TechNyquist

+0

サポートライブラリでは、名前空間を持たない項目だけがこの作業を行うために必要です。複製の必要はありません – yuval

3

投稿したコードが機能しています。それがあなたのために働いているかどうかを確認するには、xmlのボタンにスタイルを追加してください。

<Button 
    style="@style/ButtonTheme" 

    android:id="@+id/btnCrafting" 
    android:layout_width="200dp" 
    android:layout_height="wrap_content" 
    android:layout_centerHorizontal="true" 
    android:layout_centerVertical="true" 
    android:background="@drawable/button_selector" 
    android:onClick="craftingButtonClicked" 
    android:text="@string/crafting" /> 
+1

スタイルはそのようには適用されません – DerpyNerd

+1

アンドロイド:background = "@ drawable/button_selector"をボタンから削除してもう一度やり直してください。なぜこれが動作していないのか分かりません。エミュレータでも試してみてください。 – Dragan

0

スタイルまたはマニフェストファイルを変更するときは、プロジェクトで「クリーン」を実行してみてください。