在Inflater的Android崩溃上刷新

时间:2012-09-10 16:06:36

标签: android layout-inflater pull-to-refresh

我已经为Android下载了pull to refresh widget,现在我正在努力让它发挥作用。 我将插件和插件示例文件夹中的所有内容复制到我的项目中,在com.markupartist.android.widget.PullToRefreshListView中将导入引用更改为R. 到我的项目的R文件。在这一点上工作得很好。

然后我在res / layout中添加了另一个布局,并开始得到奇怪的错误消息。 这个布局在我的项目中无论如何都没有使用,我只是将文件放在适当的位置。 当前的异常消息是: 您的内容必须有一个listview,其id属性为'android.r.id.list' (在具有此id的示例项目中,仍然存在list_to_refresh.xml中的listview,但无论如何都没有更改)。 我添加的xml文件(名为crasher.xml)的内容是:

<?xml version="1.0" encoding="UTF-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"

    android:orientation="horizontal"
    android:padding="5dip" >

    <!-- Article title -->
    <TextView
        android:id="@+id/alr_title"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentLeft="true"
        android:text="Article title"
        android:textColor="#040404"
        android:typeface="sans"
        android:textSize="15dip"
        android:textStyle="bold"/>

</RelativeLayout>

当我更改这个新添加的布局时,异常有时会发生变化,并从PullToRefreshListView.java的第93行抛出,其中调用inflater来膨胀pull_to_refresh_header文件。我几乎可以确定inflater存在问题,并且在某种程度上相互冲突的布局。 有一会儿我在这一行上收到一个错误,说我不能将RelativeLayout强制转换为LinearLayout(我不知道在任何地方都这样做) - 现在我不记得我到底做了什么,也无法重现它,但它只是在在添加和未使用的布局crasher.xml中更改视图。

我不完全理解充气过程,无法确定问题出在哪里,有人可以帮助我吗?

提前感谢。

1 个答案:

答案 0 :(得分:0)

我终于找到了解决这类问题的方法:

清洁构建似乎是解决方案。在NetBeans中,运行 - &gt;清理和构建, 在Eclipse中,我认为有一个类似的选项。它解决了生成的布局资源的各种奇怪问题,这些问题在开发过程中显然没有得到很好的缓存和重建。