2013-04-06 18 views
8

Jestem w tym od wielu dni i już jestem w stanie się poddać, więc każda pomoc jest doceniana!Android - Błąd pompowania SimonVT NumberPicker w moim layoucie xml

Próbowałem wdrożyć simonVT numberpicker w mojej aplikacji na Androida. Zupełnie nowy dla Androida, więc włączając w to bibliotekę, odwołanie się do tej biblioteki i uzyskanie wszystkiego do skompilowania to tylko kilka dni misji. Teraz wreszcie mają wszystko kompilacji otrzymuję następujący błąd w czasie wykonywania:

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 

Oto otwarcie swojego układu:

<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 - The 'xmlns: app' powyżej część ma żółty znacznik ostrzegawczy - nie jest używany. Zawarłem to na inną odpowiedź stackoverflow re. podobny problem. Zostały w celu zniechęcenia do tej sugestii.

Oto xml dla 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"/> 

mam włączone do tematu w sposób opisany przez Simona w moim pliku motywu. Nie byłem pewien, co nazwa dać to, więc zadzwoniłem go „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> 

Dodałem także następujące do mojego android manifeście jako dziecko aplikacji:

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

Byłem na całym stackoverflow, więc to, co mamy powyżej, jest podejściem z pistoletu rozproszonego z wszystkiego, co widziałem, dlatego polecam. Jak już wcześniej wspomniano, jestem z tym w błędzie i jestem bliski wdrożenia standardowej brzydkiej listy.

NB - Mam wszystko to działa z natywną implementacją Android Numerpicker. Chcę jednak użyć wersji backport Simon VT, ponieważ będę obsługiwać API < 11, które obejmuje Gingerbread, który, jak sądzę, ma numer 39.7% distribution. Daj mi znać, jeśli uważasz, że nie muszę wspierać tego tak daleko.

+0

żadnych wiadomości na ten temat? Mam ten sam problem. – M4tchB0X3r

+1

Przepraszam za spóźnioną odpowiedź. Poszedłem do korzystania z natywnej implementacji Numberpicker. Zaakceptowałem odpowiedź poniżej, ale otrzymałem taką samą odpowiedź od SimonVT na jego githubie. Daj temu szansę. – Ste77

Odpowiedz

11

trzeba dodać motyw do działania na AndroidManifest.xml: Przykład:

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

Mam ten sam problem. Próbuję użyć NumberPicker w oknie dialogowym i używam getActivity(). SetTheme (R.style.AppBaseTheme); ale nie. Dowolny pomysł? Dzięki! – emiliosg

+0

Emilios nie trzeba wykonywać żadnych dodatkowych prac, wystarczy ustawić motyw dla działania, które powinno być w nim wyświetlane okno dialogowe –

0

Spróbuj wymienić net.simonvt.numberpicker.NumberPicker z com.your.package.NumberPicker.

2

Zobacz Simona użytkowania Uwagi:

wymaga dodania pojedynczy atrybut do tematu. Sprawdź przykładową aplikację, aby dowiedzieć się, jak to zrobić.

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

miałem praktycznie ten sam problem, byłem coraz błąd

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

końcu zdałam sobie sprawę, że miałem aby dodać styl pozycja w moich własnych definicji stylu (jak pokazuje Paweł Lammertsma powyżej), a ja po prostu skopiować style/wklejanie SimonVT, która oczywiście moja aplikacja nie została na podstawie:

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

Następnie, po to nadal nie działa, Stwierdziłem, że całkowicie pominąłem plik themes.xml (mam trzy różne poziomy interfejsu API).

3

Jeśli nie chcesz tworzyć kompozycji dla własnego projektu, możesz wykonać następujące czynności w kodzie źródłowym numberpicker, aby ustawić go na domyślny motyw NPWidget_Holo_numberPicker.

Wymień konstruktor z następującym

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

następnie zmienić przypisanie TypedArray attributesArray na następujące kwestie:

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

wielkie dzięki! praca 100% – Guihgo

Powiązane problemy