2013-04-06 14 views
8

Sono stato a questo da giorni ormai, e sono al punto di arrendermi, quindi ogni aiuto è molto apprezzato!Android - Errore di gonfiaggio della classe SimonVT NumberPicker nel mio layout xml

Ho cercato di implementare il simonVT numberpicker nella mia app Android. Completamente nuovo per Android, quindi includere la libreria, fare riferimento a questa libreria e ottenere tutto da compilare è stata una missione di pochi giorni in sé. Ora ho finalmente avere tutto la compilazione ottengo il seguente errore in fase di esecuzione:

04-06 10:58:37.126: E/AndroidRuntime(14324): java.lang.RuntimeException: 
Unable to start activity ComponentInfo{com.example.goalminder/com.example.goalminder.AddGoal}: 
android.view.InflateException: Binary XML file line #81: 
Error inflating class net.simonvt.numberpicker.NumberPicker 

Ecco l'apertura del mio layout:

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    xmlns:app="http://schemas.android.com/apk/res/net.simonvt.numberpicker" 
    xmlns:tools="http://schemas.android.com/tools" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:orientation="vertical"> 

NB - La 'xmlns: app' parte ha sopra un indicatore di avvertimento giallo - non viene utilizzato. Ho incluso questo per un'altra risposta StackOverflow. un problema simile Sono andato avanti per scoraggiare questo suggerimento.

Ecco l'XML per il numberpicker:

<net.simonvt.numberpicker.NumberPicker   
    android:id="@+id/dayPicker" 
    android:layout_width="0dp" 
    android:layout_height="wrap_content" 
    android:layout_marginLeft="50dp" 
    android:layout_marginRight="10dp" 
    android:layout_weight="1"/> 

ho incluso il tema come indicato da Simon nel mio file del tema. Non ero sicuro che nome dargli, quindi ho chiamato 'NumberPicker':

<resources> 

    <!-- Copy one of these attributes to your own theme (choose either dark or light). 
     <item name="numberPickerStyle">@style/NPWidget.Holo.NumberPicker</item> 
     <item name="numberPickerStyle">@style/NPWidget.Holo.Light.NumberPicker</item> 
    --> 
    <style name="NumberPicker" parent="android:Theme"> 
     <item name="numberPickerStyle">@style/NPWidget.Holo.NumberPicker</item> 
    </style> 

    <style name="NumberPicker" parent="android:Theme.Light"> 
     <item name="numberPickerStyle">@style/NPWidget.Holo.Light.NumberPicker</item> 
    </style> 

</resources> 

Ho anche aggiunto il seguente al mio manifest di Android come un figlio di applicazione:

<activity 
    android:name="net.simonvt.numberpicker.Numberpicker" /> 
<activity 
    android:name="net.simonvt.numberpicker.Scroller" /> 

Sono stato in tutto lo stackoverflow, quindi quello che abbiamo sopra è un approccio a pistola a dispersione di tutto ciò che ho visto raccomandato così. Come affermato in precedenza, sono in difficoltà con questo e sono vicino a implementare una lista brutta standard.

NB - Ho ottenuto tutto questo lavorando con l'implementazione nativa Android di Numberpicker. Voglio utilizzare la versione di backport di Simon VT, tuttavia, poiché cercherò di supportare l'API < 11, che include Gingerbread che credo abbia un 39.7% distribution. Per favore fatemi sapere se pensate che non ho bisogno di sostenere questo lontano indietro.

+0

Ci sono novità su questo? Sto avendo lo stesso problema. – M4tchB0X3r

+1

Siamo spiacenti per la risposta in ritardo. Sono andato per l'utilizzo dell'implementazione nativa di Numberpicker. Ho accettato la risposta qui sotto, anche se ho ricevuto la stessa risposta da SimonVT sul suo github. Dai un colpo. – Ste77

risposta

11

è necessario aggiungere tema per l'attività sul AndroidManifest.xml: Esempio:

<activity android:name="yourActivity" android:theme="@style/SampleTheme.Light"/> 
+0

Ho lo stesso problema. Sto cercando di usare NumberPicker in una finestra di dialogo e sto usando getActivity(). SetTheme (R.style.AppBaseTheme); ma niente. Qualche idea? Grazie! – emiliosg

+0

Non è necessario eseguire alcun lavoro aggiuntivo, basta impostare il tema dell'attività in cui deve essere visualizzata la finestra di dialogo –

0

provare a sostituire net.simonvt.numberpicker.NumberPicker con com.your.package.NumberPicker.

2

note d'uso See Simon:

richiede l'aggiunta di un singolo attributo al vostro tema. Controlla l'app di esempio per come è fatto.

values/theme.xml:

<style name="SampleTheme" parent="android:Theme"> 
    <item name="numberPickerStyle">@style/NPWidget.Holo.NumberPicker</item> 
</style> 

values-v11/themes.xml:

<style name="SampleTheme" parent="android:Theme.Holo"> 
    <item name="numberPickerStyle">@style/NPWidget.Holo.NumberPicker</item> 
</style> 
0

stavo avendo praticamente lo stesso problema, mi è stato sempre l'errore

11-18 21:13:18.627: W/ResourceType(13799): No package identifier when getting value for resource number 0x00000000 

Alla fine ho capito che avevo per aggiungere lo stile articolo in My proprie definizioni di stile (come Paul Lammertsma mostra sopra) come mi era stato appena stili/incollare del SimonVT, che naturalmente la mia domanda non era utilizzando la copia:

<style parent="@android:style/Theme.Holo.NoActionBar.Fullscreen" name="NoActionBar"> 
    <item name="numberPickerStyle">@style/NPWidget.Holo.NumberPicker</item> 
</style> 

Poi, dopo che ancora non funziona, Ho scoperto di aver completamente perso un file themes.xml (ne ho tre per diversi livelli API).

3

Se non si desidera creare un tema per il proprio progetto, è possibile effettuare le seguenti operazioni sul codice sorgente di numberpicker per impostarlo in modo da utilizzare il tema predefinito NPWidget_Holo_numberPicker.

Sostituire il costruttore con il seguente

public NumberPicker(Context context, AttributeSet attrs) { 
    this(context, attrs, R.style.NPWidget_Holo_NumberPicker); 
} 

quindi modificare l'assegnazione di TypedArray attributesArray al seguente:

TypedArray attributesArray = context.obtainStyledAttributes(
      attrs, R.styleable.NumberPicker, 0, defStyle); 
+0

grazie mille! lavoro al 100% – Guihgo

Problemi correlati