【问题标题】:Android - Error inflating SimonVT NumberPicker class in my layout xmlAndroid - 在我的布局 xml 中膨胀 SimonVT NumberPicker 类时出错
【发布时间】:2013-03-28 19:10:52
【问题描述】:

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

我一直在尝试在我的 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">

NB - 上面的 '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,所以我们上面的内容是我所看到的所有推荐的散点枪方法。如前所述,我正在为此苦苦挣扎,并且即将实施标准的丑陋列表。

NB - 我使用 Numberpicker 的原生 android 实现来完成所有这些工作。我想使用 Simon VT 的 backport 版本,因为我希望支持 API 39.7% distribution 的 Gingerbread。如果您认为我不需要这么久的支持,请告诉我。

【问题讨论】:

  • 有这方面的消息吗?我也遇到了同样的问题。
  • 抱歉回复晚了。我选择使用本机 Numberpicker 实现。我已经接受了下面的回复,尽管 SimonVT 在他的 github 上也得到了同样的回复。试一试。

标签: android numberpicker


【解决方案1】:

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

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

【讨论】:

  • 我遇到了同样的问题。我正在尝试在对话框中使用 NumberPicker,我正在使用 getActivity().setTheme(R.style.AppBaseTheme);但没什么。任何想法?谢谢!
  • Emiliosg 不需要做任何额外的工作,只需为应该在其中显示对话框的活动设置主题
【解决方案2】:

如果您不想为自己的项目创建主题,您可以对 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);

【讨论】:

    【解决方案3】:

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

    【讨论】:

      【解决方案4】:

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

      【讨论】:

        【解决方案5】:

        我遇到了几乎同样的问题,我得到了错误

        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>
        

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

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 2017-08-11
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多