2015-09-06 13 views
5

sto facendo una semplice applicazione per la calcolatrice per Android (la mia prima app) e ho problemi che mi si spezzano la testa quando provo ad applicare uno specifico androide: tema ad un pulsante.Arresto anomalo dell'applicazione quando Android: il tema è applicato a un pulsante specifico

Il problema si verifica quando il pulsante con il tema specifico tenta di eseguire un metodo di attività nell'evento onclick. In base a ciò che ho cercato in StackOverflow, è come se il "contesto" del pulsante con il tema specifico fosse diverso dal contesto dell'attività e, a causa di ciò, non può trovare il mio metodo che gestisce l'onclick scritto nell'attività.

c'è la mia style.xml dove definisco il mio tema aplication e il mio tema specifico pulsante:

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

C'è il mio pulsante nel xml di layout:

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

La soluzione che ho letto qui è quel cambiamento "android: theme" con "style", anche se questo risolve il crash, il nuovo colore colorButtonNormal non viene applicato :(.

Pls help me D:

PD: Ci scusiamo per il mio cattivo inglese

risposta

3

Ho risposto a una domanda simile here, dove è possibile ottenere un po 'più di fondo.

Una possibile soluzione al problema è non utilizzare android:onClick="onClickButton" ma impostare un codice onClickListener nel codice. In questo modo puoi mantenere il tuo tema Button. Il docs ufficiale ha un esempio su come farlo.

+0

Ciao, ho già visto la tua risposta e ho letto i due link. Non ho provato con onClickListener, proverò quando torno dal lavoro. Grazie per l'aiuto! – Frietziek

+0

Funziona e risolve mi problema! Grazie mille uomini! :) – Frietziek

Problemi correlati