8

我已经在这几天了,我正要放弃,所以非常感谢任何帮助!

我一直在尝试在我的 android 应用程序中实现simonVT numberpicker 。对 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">

注意- 上面的 'xmlns:app' 部分有一个黄色警告标记 - 它没有被使用。我在另一个stackoverflow答案中包含了这个。类似的问题。留下来阻止这个建议。

这是数字选择器的 xml:

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

我已按照 Simon 的指示将主题包含在我的主题文件中。我真的不知道该给它取什么名字,所以我称它为“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>

作为应用程序的子项,我还将以下内容添加到我的 android 清单中:

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

我一直在使用stackoverflow,所以我们上面的内容是我所看到的所有推荐的散点枪方法。如前所述,我正在为此苦苦挣扎,并且即将实施标准的丑陋列表。

注意- 我使用 Numberpicker 的原生 android 实现来完成所有这些工作。我想使用 Simon VT 的 backport 版本,因为我希望支持 API < 11,其中包括我认为有39.7% 分布的 Gingerbread 。如果您认为我不需要支持这一点,请告诉我。

4

5 回答 5

11

您需要为 AndroidManifest.xml 上的活动添加主题:示例:

<activity android:name="yourActivity" android:theme="@style/SampleTheme.Light"/>
于 2013-04-12T10:43:52.607 回答
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);
于 2014-01-03T07:43:02.493 回答
2

请参阅 Simon 的使用说明:

需要向您的主题添加单个属性。检查示例应用程序以了解这是如何完成的。

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>
于 2013-11-13T17:15:13.710 回答
0

尝试用 com.your.package.NumberPicker 替换 net.simonvt.numberpicker.NumberPicker。

于 2013-07-09T07:15:42.160 回答
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>

然后,在它仍然无法工作之后,我发现我完全错过了一个 theme.xml 文件(我有三个用于不同的 API 级别)。

于 2013-11-18T21:34:41.783 回答