使用include作为根布局节点抛出“错误膨胀类包含”异常

时间:2012-01-11 21:50:44

标签: android android-layout

我尝试使用不同的列表项布局,具体取决于操作系统版本。

因此,我创建了与条件相关的不同布局。 其中之一是(layout/search_result_list_item.xml

<?xml version="1.0" encoding="utf-8"?>
<include xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    layout="@android:layout/simple_list_item_1">
</include>

它包含标准“simple_list_item_1”。

在我的Java代码中,布局与列表相关联:

    adapter = new SimpleCursorAdapter(getActivity(),
                                      R.layout.search_results_list_item,
                                      null,
                                      from,
                                      to,
                                      0);

显示列表项时,抛出以下异常:

android.view.InflateException: Binary XML file line #2: Error inflating class include
   at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:576)
   at android.view.LayoutInflater.inflate(LayoutInflater.java:385)
   at android.view.LayoutInflater.inflate(LayoutInflater.java:320)
   at android.support.v4.widget.ResourceCursorAdapter.newView(ResourceCursorAdapt

有什么问题?不能用作根项目?尽管ADT允许它。

2 个答案:

答案 0 :(得分:30)

如果有人想知道这是答案:

<?xml version="1.0" encoding="utf-8"?>
<merge>
    <include xmlns:android="http://schemas.android.com/apk/res/android"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        layout="@android:layout/simple_list_item_1">
    </include>
</merge>

答案 1 :(得分:0)

您可以使用资源文件夹中的限定符来提供Android OS verion特定资源。

请参阅:http://developer.android.com/guide/topics/resources/providing-resources.html

可能的限定符列表中的最后一项是版本(API级别)。