当android:theme被应用于特定按钮

时间:2015-09-06 20:30:05

标签: android themes

我正在为Android(我的第一个应用程序)做一个简单的计算器应用程序,当我尝试将特定的android:theme应用于按钮时,我遇到了一些问题。

当具有特定主题的按钮尝试在onclick事件中执行活动方法时,问题就出现了。根据我在StackOverflow中搜索到的内容,就像" context"具有特定主题的按钮与活动上下文不同,因此它无法找到处理活动中写入的onclick的方法。

我的style.xml中我定义了我的应用主题和我的特定按钮主题:

<resources>

    <!-- Base application theme. -->
    <style name="AppTheme" parent="Theme.AppCompat.NoActionBar">
        <item name="colorButtonNormal">#dc000000</item>
        <item name="android:background">#dc262626</item>
        <!-- Customize your theme here. -->
    </style>

    <style name="contextButtonTheme" parent="AppTheme">
        <item name="colorButtonNormal">@color/contextButtonsColor</item>
    </style>

</resources>

布局xml中有我的按钮:

<Button
    android:layout_width="0dp"
    android:layout_weight="25"
    android:layout_height="match_parent"
    android:text="X"
    android:id="@+id/multButton"
    android:textSize="11pt"
    android:theme="@style/contextButtonTheme"
    android:onClick="onClickButton"/>

我在这里读到的解决方案是改变&#34; android:theme&#34;使用&#34; style&#34;,虽然这解决了崩溃问题,但不应用colorButtonNormal新颜色:(。

请帮帮我D:

PD:抱歉我的英文不好

1 个答案:

答案 0 :(得分:3)

我已经回答了类似问题here,您可以在这里获得更多背景信息。

问题的可能解决方案是不使用android:onClick="onClickButton",而是在代码中设置onClickListener。这样您就可以保留主题Button。官方docs有一个如何做到这一点的例子。