2013-04-06 2 views
8

Я был на этом уже несколько дней, и я нахожусь в состоянии сдаться, поэтому любая помощь очень ценится!Android - ошибка раздувания SimonVT NumberPicker класс в моем макете xml

Я пытался реализовать simonVT numberpicker в своем приложении для Android. Полностью новый для android, поэтому, включая библиотеку, ссылаясь на эту библиотеку, и получить все, чтобы скомпилировать, было несколько дней миссии сама по себе. Теперь я, наконец, все компиляции я получаю следующее сообщение об ошибке во время выполнения:

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 

Вот открытие моего макета:

<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: приложение» часть выше имеет желтый предупреждающий маркер - он не используется. Я включил это в другой ответ на stackoverflow. аналогичная проблема. Ушли, чтобы отговорить это предложение.

Вот XML для 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"/> 

Я включил тему, как указано Саймоном в моем файле темы. Я не был уверен, что имя дать, так что я назвал его «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> 

Я также добавил следующее к моему андроида манифеста в детстве применения:

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

Я уже переполнял stackoverflow, поэтому то, что мы имеем выше, - это подход с разбросанным оружием во всем, что я видел, рекомендованный так. Как уже говорилось ранее, я барахтаюсь на этом, и я близок к внедрению стандартного уродливого списка.

NB. Я хочу использовать версию backport Simon VT, так как я буду искать поддержку API < 11, которая включает пряник, который, я считаю, имеет 39.7% distribution. Пожалуйста, дайте мне знать, если вы считаете, что мне не нужно поддерживать это далеко назад.

+0

Любые новости по этому поводу? У меня такая же проблема. – M4tchB0X3r

+1

Извините за поздний ответ. Я пошел на использование собственной версии Numberpicker. Я принял ответ ниже, хотя также получил тот же ответ от SimonVT на его github. Дайте это выстрел. – Ste77

ответ

11

вам нужно добавить тему для деятельности на AndroidManifest.xml: Пример:

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

У меня такая же проблема. Я пытаюсь использовать NumberPicker в диалоге, и я использую getActivity(). SetTheme (R.style.AppBaseTheme); но nothig. Есть идеи? Благодаря! – emiliosg

+0

Emiliosg не нужно делать какую-либо дополнительную работу, просто задайте тему активности, в которой должно отображаться диалоговое окно –

0

Попробуйте заменить net.simonvt.numberpicker.NumberPicker с com.your.package.NumberPicker.

2

отмечает использование знакомства Саймона:

требует добавления одного атрибута к вашей теме. Проверьте пример приложения, как это делается.

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

У меня была практически такая же проблема, я получаю ошибку

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

я, наконец, понял, что я имел добавить стиль пункт в моем собственных определения стиля (как показано выше Paul Lammertsma), как я был просто скопировать стили/наклеивая SimonVT, который, конечно, мое приложение не использует:

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

Затем, после того, как он все еще не работает, Я обнаружил, что полностью пропустил файл themes.xml (у меня три для разных уровней API).

3

Если вы не хотите создавать тему для своего собственного проекта, вы можете сделать следующее в исходном коде numberpicker, чтобы установить его для использования темы NPWidget_Holo_numberPicker по умолчанию.

Заменить конструктор со следующим

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

затем изменить назначение TypedArray attributesArray к следующему:

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

спасибо большое! работа 100% – Guihgo

Смежные вопросы