2015-09-06 2 views
5

Ich mache eine einfache Rechner-Anwendung für Android (meine erste App) und ich habe Probleme, die meinen Kopf brechen, wenn ich versuche, ein bestimmtes Android: Thema zu a Taste.App-Absturz, wenn Android: Thema auf eine bestimmte Schaltfläche angewendet wird

Das Problem tritt auf, wenn die Schaltfläche mit dem bestimmten Thema versucht, eine Aktivitätsmethode im onclick-Ereignis auszuführen. Basierend auf dem, was ich in StackOverflow gesucht habe, ist der "Kontext" der Schaltfläche mit dem spezifischen Thema anders als der Aktivitätskontext, und deshalb kann er meine Methode nicht finden, die den in der Aktivität geschriebenen Onclick behandelt.

Es ist mein style.xml, wo ich mein aplication Thema und mein bestimmte Schaltfläche Thema definieren:

<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> 

Es ist meine Schaltfläche im Layout 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"/> 

Die Lösung, die ich hier gelesen ist das ändern "android: theme" mit "style", obwohl dies den Absturz löst, wird die colorButtonNormal neue Farbe nicht angewendet :(.

Pls mir helfen D:

PD: Sorry für mein schlechtes Englisch

Antwort

3

ich eine ähnliche Frage here beantwortet haben, wo Sie ein bisschen mehr Hintergrund bekommen.

Eine mögliche Lösung für Ihr Problem ist, android:onClick="onClickButton" nicht verwenden, sondern einen onClickListener in Code festlegen. Auf diese Weise können Sie Ihr Thema Button behalten. Die offiziellen docs haben ein Beispiel, wie man das macht.

+0

Hallo, ich habe deine Antwort schon einmal gesehen und die beiden Links gelesen. Ich habe es nicht mit onClickListener versucht, ich werde versuchen, wenn ich von der Arbeit zurückkomme. Danke für die Hilfe! – Frietziek

+0

Es funktioniert und löst mi Problem! Vielen Dank! :) – Frietziek

Verwandte Themen