【问题标题】:Error inflating class android.widget.ListView when setting ContentView of Activity设置 Activity 的 ContentView 时膨胀类 android.widget.ListView 时出错
【发布时间】:2022-02-24 21:05:53
【问题描述】:

首先我知道已经有两个帖子处理相同的问题。但是他们的解决方案都不适合我。 Error inflating class android.widget.listviewAndroid App Stopped Error :inflating class android.widget.ListView

在我的情况下,当我的 Activity 的 onCreate() 的 setContentView() 被调用时,也会发生错误。 这是一个例外:

E/ChecklistActivity: Binary XML file line #5 in de.bigunet.varionote:layout/activity_checklist: Binary XML file line #5 in de.bigunet.varionote:layout/activity_checklist: Error inflating class android.widget.ListView
W/System.err: android.view.InflateException: Binary XML file line #5 in de.bigunet.varionote:layout/activity_checklist: Binary XML file line #5 in de.bigunet.varionote:layout/activity_checklist: Error inflating class android.widget.ListView
W/System.err: Caused by: android.view.InflateException: Binary XML file line #5 in de.bigunet.varionote:layout/activity_checklist: Error inflating class android.widget.ListView
W/System.err: Caused by: java.lang.reflect.InvocationTargetException
W/System.err:     at java.lang.reflect.Constructor.newInstance0(Native Method)
W/System.err:     at java.lang.reflect.Constructor.newInstance(Constructor.java:343)
W/System.err:     at android.view.LayoutInflater.createView(LayoutInflater.java:852)
W/System.err:     at android.view.LayoutInflater.createView(LayoutInflater.java:774)
W/System.err:     at com.android.internal.policy.PhoneLayoutInflater.onCreateView(PhoneLayoutInflater.java:58)
W/System.err:     at android.view.LayoutInflater.onCreateView(LayoutInflater.java:928)
W/System.err:     at android.view.LayoutInflater.onCreateView(LayoutInflater.java:948)
W/System.err:     at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:1002)
W/System.err:     at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:959)
W/System.err:     at android.view.LayoutInflater.rInflate(LayoutInflater.java:1121)
W/System.err:     at android.view.LayoutInflater.rInflateChildren(LayoutInflater.java:1082)
W/System.err:     at android.view.LayoutInflater.inflate(LayoutInflater.java:680)
W/System.err:     at android.view.LayoutInflater.inflate(LayoutInflater.java:532)
W/System.err:     at android.view.LayoutInflater.inflate(LayoutInflater.java:479)
W/System.err:     at androidx.appcompat.app.AppCompatDelegateImpl.setContentView(AppCompatDelegateImpl.java:706)
W/System.err:     at androidx.appcompat.app.AppCompatActivity.setContentView(AppCompatActivity.java:195)
W/System.err:     at com.bigunet.varionote.ChecklistActivity.onCreate(ChecklistActivity.java:46)
W/System.err:     at android.app.Activity.performCreate(Activity.java:8207)
W/System.err:     at android.app.Activity.performCreate(Activity.java:8191)
W/System.err:     at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1309)
W/System.err:     at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:3800)
W/System.err:     at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:4003)
W/System.err:     at android.app.servertransaction.LaunchActivityItem.execute(LaunchActivityItem.java:85)
W/System.err:     at android.app.servertransaction.TransactionExecutor.executeCallbacks(TransactionExecutor.java:135)
W/System.err:     at android.app.servertransaction.TransactionExecutor.execute(TransactionExecutor.java:95)
W/System.err:     at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2317)
W/System.err:     at android.os.Handler.dispatchMessage(Handler.java:106)
W/System.err:     at android.os.Looper.loop(Looper.java:246)
W/System.err:     at android.app.ActivityThread.main(ActivityThread.java:8595)
W/System.err:     at java.lang.reflect.Method.invoke(Native Method)
W/System.err:     at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:602)
W/System.err:     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1130)
W/System.err: Caused by: android.content.res.Resources$NotFoundException: Text array resource ID #0x7f0c0032
W/System.err:     at android.content.res.Resources.getTextArray(Resources.java:728)
W/System.err:     at android.content.res.TypedArray.getTextArray(TypedArray.java:1063)
W/System.err:     at android.widget.ListView.<init>(ListView.java:269)
W/System.err:     at android.widget.ListView.<init>(ListView.java:258)
W/System.err:     at android.widget.ListView.<init>(ListView.java:254)
W/System.err:   ... 32 more

这是我的 Activity 的 onCreate():

public class ChecklistActivity extends AppCompatActivity {
    private static final String TAG = "ChecklistActivity";

    private ChecklistAdapter adapter;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        try {
                super.onCreate(savedInstanceState);
                setContentView(R.layout.activity_checklist);

                adapter = new ChecklistAdapter(this);
                checkListView = (ListView) findViewById(R.id.checkList);
                checkListView.setAdapter(adapter);
                checkListView.setEnabled(true);
            }
        } catch (Exception e) {
            Log.e(TAG, e.getMessage());
            e.printStackTrace();
        }
    }
}

这是活动的 xml:

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent">

    <ListView android:id="@+id/checkList"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:entries="@layout/checklist_item">
    </ListView>

</RelativeLayout>

这里是 checklist_item 的 xml:

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/layoutChecklistItem"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:clickable="true"
    android:padding="10dp"
    android:focusable="true">

    <TextView
        android:id="@+id/textViewCheckText"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentStart="true"
        android:layout_alignParentEnd="true"
        android:clickable="true"
        android:padding="5dp"
        android:text="@string/checktext"
        android:textColor="@color/black"
        android:textSize="40sp"
        android:focusable="true" />

    <TextView
        android:id="@+id/textViewCheckWert"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_below="@+id/textViewCheckText"
        android:layout_alignStart="@+id/textViewCheckText"
        android:layout_alignParentEnd="true"
        android:clickable="true"
        android:padding="5dp"
        android:text="@string/checkwert"
        android:textSize="25sp"
        android:textStyle="italic"
        android:typeface="normal"
        android:focusable="true" />

</RelativeLayout>

我真的不明白这里有什么问题...... 如果你们遇到和我一样的问题,我会很感兴趣。 还是我错过了什么? 对此的任何帮助都会很棒! 提前致谢。

莫里斯

【问题讨论】:

  • android:entries="@layout/checklist_item"entries 属性不占用 @layout 资源。它期待一个@array;基本上,它的项目的预定义列表。顺便说一句,请针对此类问题发布完整的堆栈跟踪。您从中提取的那三行中甚至没有暗示实际错误。
  • 感谢您的回答。如何预定义项目列表?
  • 如果你想使用你的ChecklistAdapter,你不能。该属性适用于内部处理的ArrayAdapter 中的简单、单一TextView 项。
  • 我真的不明白你的意思对不起。但我只是将整个例外添加到帖子中
  • 我必须在 res 中创建一个名为 array 的新目录并将 checklist_item.xml 移动到该目录吗?

标签: java android xml android-layout android-listview


【解决方案1】:

刚刚解决了!

我只是删除了

android:entries="@layout/checklist_item"

来自我活动的 xml 现在它工作正常。

【讨论】:

    猜你喜欢
    • 2012-08-03
    • 2016-04-06
    • 1970-01-01
    • 1970-01-01
    • 2019-11-29
    • 2017-02-28
    • 2021-07-10
    • 2020-08-01
    • 2016-02-28
    相关资源
    最近更新 更多