Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/jpa/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 具有包含LinearLayout的行的ListView_Android - Fatal编程技术网

Android 具有包含LinearLayout的行的ListView

Android 具有包含LinearLayout的行的ListView,android,Android,我正在尝试使用ListView实现一个列表,它包含使用LinearLayout构建的行。此线性布局由复选框和文本视图组成。该行的布局名为tasks\u list\u row.xml: <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="horizontal"

我正在尝试使用ListView实现一个列表,它包含使用LinearLayout构建的行。此线性布局由复选框和文本视图组成。该行的布局名为tasks\u list\u row.xml:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="horizontal"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent">
    <CheckBox android:id="@+id/checkbox"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content" />
    <TextView android:id="@android:id/text1"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content" />
</LinearLayout>

然后,从我的代码中,我以以下方式初始化列表:

final String[] items_task = new String[] { "one",
                "two",
                "three" };

setListAdapter(new ArrayAdapter<String>(this, R.layout.tasks_list_row, items_task));
setListAdapter(new ArrayAdapter<String>(this, R.id.text1, R.layout.tasks_list_row, items_task));
final String[]items\u task=新字符串[]{“一”,
“两个”,
“三”};
setListAdapter(新的ArrayAdapter(this,R.layout.tasks\u list\u row,items\u task));
但是我得到了一个错误: ArrayAdapter-必须为TextView提供资源ID

然后,我尝试通过以下方式指定TextView id:

final String[] items_task = new String[] { "one",
                "two",
                "three" };

setListAdapter(new ArrayAdapter<String>(this, R.layout.tasks_list_row, items_task));
setListAdapter(new ArrayAdapter<String>(this, R.id.text1, R.layout.tasks_list_row, items_task));
setListAdapter(新的ArrayAdapter(这个,R.id.text1,R.layout.tasks\u list\u行,items\u task));
但是我得到一个ResourceNotFound错误(R.id.text1存在于R.java文件中)


我该怎么办?

在这种情况下,您需要使用android.R.id.text1,因为您正在引用内置的android id(@android:id是线索)

setListAdapter(新的ArrayAdapter(这个,R.layout.tasks\u list\u行,android.R.id.text1,items\u任务));

这样做没有多大好处,除非您使用内置布局,例如android.R.layout.two_line_list_item

在这种情况下,您需要使用android.R.id.text1,因为您正在引用内置的android id(@android:id是线索)

setListAdapter(新的ArrayAdapter(这个,R.layout.tasks\u list\u行,android.R.id.text1,items\u任务));

这样做没有多大好处,除非您使用内置布局,例如android.R.layout.two_line_list_item

尝试使用android默认的textview id
android.R.id.text1

尝试使用android默认的textview id
android.R.id.text1

为您的线性布局android:id=“@android:id/tasks\u list\u row”提供一个id,并使用此id代替

setListAdapter(new ArrayAdapter<String>(this, R.id.tasks_list_row, items_task));
setListAdapter(新的ArrayAdapter(这个,R.id.tasks\u list\u行,items\u task));

每个项目都将具有您指定的xml。您可以改为使用CheckedTextView,它将
文本视图
复选框
相结合,为您的线性布局android:id=“@android:id/tasks\u list\u row”提供一个id,并改为使用该id

setListAdapter(new ArrayAdapter<String>(this, R.id.tasks_list_row, items_task));
setListAdapter(新的ArrayAdapter(这个,R.id.tasks\u list\u行,items\u task));

每个项目都将具有您指定的xml。您可以改为使用CheckedTextView,它将
文本视图
复选框
结合起来

我同意@David的观点。我认为没有理由在自己的布局中使用@android:id/text1作为文本字段的id。如果您只使用@+id/text1,那么您的代码应该可以工作,并且id在您的项目空间中。是的,我认为如果您坚持使用自己的标识符,那么更容易理解。在这种情况下,您通常可以使用更具描述性的名称,如标题或标题,而不是text1。我这样做了,我得到了以下错误:android.content.res.Resources$NotFoundException:File from xml type layout resource ID#0x1020014(该ID在我的R.java文件中不存在)尝试在布局xml中使用android:ID=“@+ID/text1”,然后R.id.text1作为ArrayAdapter构造函数的第二个参数。是的,我以前尝试过它,但它抛出了一个类似的错误:android.content.res.Resources$NotFoundException:Resource id#0x7f050004 type#0x12无效我同意@David的说法。我认为没有理由在自己的布局中使用@android:id/text1作为文本字段的id。如果您只使用@+id/text1,那么您的代码应该可以工作,并且id在您的项目空间中。是的,我认为如果您坚持使用自己的标识符,那么更容易理解。在这种情况下,您通常可以使用更具描述性的名称,如标题或标题,而不是text1。我这样做了,我得到了以下错误:android.content.res.Resources$NotFoundException:File from xml type layout resource ID#0x1020014(该ID在我的R.java文件中不存在)尝试在布局xml中使用android:ID=“@+ID/text1”,然后R.id.text1作为ArrayAdapter构造函数的第二个参数。是,我以前尝试过它,但它抛出了类似的错误:android.content.res.Resources$NotFoundException:Resource ID#0x7f050004 type#0x12无效roid.content.res.Resources$NotFoundException:Resource ID#0x7f050004 type#0x12无效roid.content.res.Resources$NotFoundException:Resource ID#0x7f050004 type#0x12无效