Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/user-interface/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
Adapter onBind方法无法识别android中行xml中的视图项_Android_User Interface_Android Recyclerview_Recyclerview Layout - Fatal编程技术网

Adapter onBind方法无法识别android中行xml中的视图项

Adapter onBind方法无法识别android中行xml中的视图项,android,user-interface,android-recyclerview,recyclerview-layout,Android,User Interface,Android Recyclerview,Recyclerview Layout,创建一个包含最多4项的列表的简单程序时,我选择了RecyclerView而不是ListView进行优化。我将RecyclerView添加并绑定到我的main.xml和main活动中,创建了一个row.xml,该行定义了RecyclerView中的每一行的外观,并创建并绑定了一个自定义适配器,该适配器使用所需的方法扩展了RecyclerView.adapter。我的代码发布在下面-> <!-- This is row.xml --> <LinearLayout xmlns:and

创建一个包含最多4项的列表的简单程序时,我选择了RecyclerView而不是ListView进行优化。我将RecyclerView添加并绑定到我的main.xml和main活动中,创建了一个row.xml,该行定义了RecyclerView中的每一行的外观,并创建并绑定了一个自定义适配器,该适配器使用所需的方法扩展了RecyclerView.adapter。我的代码发布在下面->

<!-- This is row.xml -->
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:orientation="horizontal"
android:layout_width="match_parent"
android:id="@+id/container_4_row"
android:layout_height="@dimen/media_item_height">

<ImageView
    android:id="@+id/cover_art"
    android:layout_width="80dp"
    android:layout_height="match_parent"
    android:layout_marginEnd="50dp"
    android:background="@color/colorPrimary"
    android:contentDescription="@string/play_item"
    android:src="@drawable/ic_action_name" />

<LinearLayout
    android:id="@+id/text_container"
    android:layout_width="200dp"
    android:layout_height="match_parent"
    android:orientation="vertical">

    <TextView
        android:id="@+id/title"
        tools:text="The Best Music EVAH1111 FOREVER YOUNG I'M SOME!!!11^H^H"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:maxLines="1"
        android:ellipsize="end"
        android:textAppearance="?android:attr/textAppearanceMedium"
        android:textColor="?android:attr/textColorPrimary"/>

    <TextView
        android:id="@+id/author"
        tools:text="John Doe, his brothers, his sisters, his pets and his more than amazing band"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:maxLines="1"
        android:ellipsize="end"
        android:textAppearance="?android:attr/textAppearanceSmall"
        android:textColor="?android:attr/textColorSecondary"/>

</LinearLayout>
我的问题是,当我运行应用程序时,RecyclerView.Adapter onBindViewHolder()无法识别父视图holder(它引用了行.xml)中的子视图……我不知道为什么它不能识别,因为之前我在运行它时没有插入任何文本或为imageview指定空值,所以它没有问题,它建立正确,现在它随机调整。我尝试的是,使缓存失效/清除并重新启动AS(没有纠正问题),我还尝试创建一个新的虚拟项目并复制和粘贴我的代码,运行它时没有任何问题,但我的主项目中有很多文件/助手类等问题

下面是错误日志


应用程序已终止。

您正在传递两个值

String[] mew = new String[]{"mew", "two"}; 
尝试生成4行,这可能会产生indexOutOfBounds异常

@Override
public int getItemCount() {
    return 4;//use your mDataset's size.
}

您正在传递两个值

String[] mew = new String[]{"mew", "two"}; 
尝试生成4行,这可能会产生indexOutOfBounds异常

@Override
public int getItemCount() {
    return 4;//use your mDataset's size.
}

在onBindViewHolder中有一个小错误

更新下面的代码,我更正了它

viewHolder.aCover.setBackgroundColor(Color.RED);
viewHolder.mAuthor.setText("John Doe, his brothers, his sisters"); viewHolder.mTitle.setText("The Best Music EVAH1111");
你指的是错误的观点。这导致了错误


如果问题得到解决,请更新并通知我。

在onBindViewHolder中有一个小错误

更新下面的代码,我更正了它

viewHolder.aCover.setBackgroundColor(Color.RED);
viewHolder.mAuthor.setText("John Doe, his brothers, his sisters"); viewHolder.mTitle.setText("The Best Music EVAH1111");
你指的是错误的观点。这导致了错误


更新并让我知道问题是否得到解决。

正如@Mike M.在评论中指出的

您是否有多个res/layout*/文件夹,其中您可能在一个文件夹中创建了行,而没有这些视图?如果是的话,它们是否都和你在上面发布的一样;i、 例如,所有视图都具有完全相同的ID?另外,v21+是否需要不同的版本


我有两个不同的文件夹包含相同的布局,默认布局文件夹和v21文件夹,但是我的视图Id和一些父级布局视图不匹配,在我更新它们以反映两个文件夹中的精确副本后,我的应用程序像@Mike M.在评论中指出的那样运行得很快

您是否有多个res/layout*/文件夹,其中您可能在一个文件夹中创建了行,而没有这些视图?如果是的话,它们是否都和你在上面发布的一样;i、 例如,所有视图都具有完全相同的ID?另外,v21+是否需要不同的版本


我有两个不同的文件夹包含相同的布局,默认布局文件夹和v21文件夹,但是我的视图Id和一些父级布局视图不匹配,在我更新它们以反映两个文件夹中的精确副本后,我的应用程序运行得很快,所以问题是什么?@AndrewMyers代码已发布,我仍然在这个问题上工作,我知道它应该会起作用,因为我的POC在我创建时起作用,最终将删除虚拟项目/应用程序,但在我的一生中不会在我的原始项目上工作……这是AS中的一种bug吗?这通常会发生吗?或者这发生在你们两人身上了吗?
无法识别父视图持有者中的子视图
您看到了什么错误?@Sagar我已经发布了错误日志,但请记住,当我创建新应用程序并复制/粘贴查看包含4行的RecyclerVIew列表所需的代码/文件时,没有出现任何问题,由相同的图像视图和两个文本视图组成您是否有多个
res/layout*/
文件夹,其中您可能在一个文件夹中创建了
,而没有这些
视图
s?那么问题是什么呢?@AndrewMyers代码已发布,我仍在处理该问题,我知道它应该可以工作,因为我的POC在我创建并最终将删除虚拟项目/应用程序时起作用,但在我的一生中不会在我的原始项目上工作……这是AS中的一种bug吗?这通常会发生吗?或者这发生在你们两人身上了吗?
无法识别父视图持有者中的子视图
您看到了什么错误?@Sagar我已经发布了错误日志,但请记住,当我创建新应用程序并复制/粘贴查看包含4行的RecyclerVIew列表所需的代码/文件时,没有出现任何问题,由相同的imageview和2个TextView组成。您是否有多个
res/layout*/
文件夹,其中您可能在一个文件夹中创建了
,而没有这些
视图
s?我在getItemCount()方法中特别放置了4作为项目计数。我还在onBindViewHolder()中的author和title TextView中插入了伪文本,我在getItemCount()方法中将4作为项计数。我还在onBindViewHolder()中的author和title TextView中插入了虚拟文本不,不是这样,我实际上有两个不同的布局文件夹,视图id不匹配@mikeM在上面的评论中指出了这一点。不,不是这样,实际上,我有两个不同的布局文件夹,视图id不匹配@mikeM在上面的评论中指出了这一点。