繁体   English   中英

Recyclerview项目中的Android recyclerview

[英]Android recyclerview in a recyclerview item

我正在为学校项目构建应用程序,我想要的是在我的应用程序中为学生制定周计划。 为此,我需要在recyclerview项中添加一个recyclerview,但是当我运行我的应用程序时,它什么也没有显示。 我认为这是错误

logcat: 06-19 15:43:36.926 2980-2980/com.sapps.tools.dedykapp E/RecyclerView﹕ No adapter attached; skipping layout. 06-19 15:43:36.926 2980-2980/com.sapps.tools.dedykapp E/RecyclerView﹕ No adapter attached; skipping layout. 这是我的代码:

PlannerActivity.java

//day planner monday
    ArrayList<DayItems> mon = new ArrayList<>();
    mon.add(new DayItems("huiswerk maken"));

    LinearLayout v = (LinearLayout)getLayoutInflater().inflate(R.layout.dayitems, viewGroup);

    RecyclerView dayPlan = (RecyclerView)v.findViewById(R.id.mon);
    dayPlan.setHasFixedSize(true);
    LinearLayoutManager linearLayoutManager = new LinearLayoutManager(this);
    linearLayoutManager.setOrientation(LinearLayoutManager.VERTICAL);
    dayPlan.setLayoutManager(linearLayoutManager);

    DayRecAdapter dayAdapter = new DayRecAdapter(mon);
    dayPlan.setAdapter(dayAdapter);

    //planner
    RecyclerView plan = (RecyclerView)findViewById(R.id.planner);
    plan.setHasFixedSize(true);
    LinearLayoutManager linManager = new LinearLayoutManager(this);
    linManager.setOrientation(LinearLayoutManager.VERTICAL);
    plan.setLayoutManager(linManager);

    PlannerRecAdapter recAdapter = new PlannerRecAdapter(R.layout.dayitems);
    plan.setAdapter(recAdapter);

我的议程的两个适配器:

待办事项清单的适配器位于recyclerview项目内:

public class DayRecAdapter extends RecyclerView.Adapter<DayViewHolder> {

ArrayList<DayItems> mList;

public DayRecAdapter(ArrayList<DayItems> mList){
    this.mList = mList;
}

public int getItemCount(){
    return mList.size();
}

public DayViewHolder onCreateViewHolder(ViewGroup viewGroup, int position){
    View v = LayoutInflater.from(viewGroup.getContext()).inflate(R.layout.planitem, viewGroup, false);
    DayViewHolder DVH = new DayViewHolder(v);
    return DVH;
}

public void onBindViewHolder(DayViewHolder vHolder, int i){
    vHolder.dayText.setText(mList.get(i).todo);
}

}

主recyclerview的适配器:

public class PlannerRecAdapter extends RecyclerView.Adapter<PlannerViewHolder> {

int layoutResource;

public PlannerRecAdapter(int layoutResource){
    this.layoutResource = layoutResource;
}

public int getItemCount(){
    return 1;
}

public PlannerViewHolder onCreateViewHolder(ViewGroup viewGroup, int position){
    View v = LayoutInflater.from(viewGroup.getContext()).inflate(layoutResource, viewGroup, false);
    PlannerViewHolder PVH = new PlannerViewHolder(v);
    return PVH;
}

public void onBindViewHolder(PlannerViewHolder holder, int i){

}
}

这是PlannerRecAdapter的布局资源:

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

    <android.support.v7.widget.CardView
        xmlns:card_view="http://schemas.android.com/apk/res-auto"
        android:id="@+id/planCard"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        card_view:cardCornerRadius="4dp"
        card_view:cardBackgroundColor="#9CCC65"
        android:layout_margin="13dp">

        <TextView
            android:id="@+id/dagTXT"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:textColor="@color/text2"
            android:textSize="15dp"
            android:textStyle="bold"
            android:padding="14dp"
            android:text="Maandag"/>

        <android.support.v7.widget.RecyclerView
            android:id="@+id/mon"
            android:layout_height="wrap_content"
            android:layout_width="fill_parent"
            android:padding="14dp"
            android:scrollbars="vertical" />

    </android.support.v7.widget.CardView>

Logcat:

    Reconstruct Branch: AU_LINUX_ANDROID_LA.BF.1.1.04.04.02.162.107 + cb93e16 + f50fe49 + d7c18e6 + 5b9a565 + 0f3a25d + 607156e + 75511aa + e4d16c0 + 686f3eb + 211a271 + dd281ee +  NOTHING
06-19 15:43:34.142    2980-3015/com.sapps.tools.dedykapp W/AudioManagerAndroid﹕ Requires BLUETOOTH permission
06-19 15:43:34.184    2980-3013/com.sapps.tools.dedykapp W/chromium﹕ [WARNING:data_reduction_proxy_config.cc(318)] SPDY proxy OFF at startup
06-19 15:43:34.220    2980-2980/com.sapps.tools.dedykapp W/art﹕ Attempt to remove local handle scope entry from IRT, ignoring
06-19 15:43:34.235    2980-2980/com.sapps.tools.dedykapp W/AwContents﹕ onDetachedFromWindow called when already detached. Ignoring
06-19 15:43:34.350    2980-3030/com.sapps.tools.dedykapp D/OpenGLRenderer﹕ Render dirty regions requested: true
06-19 15:43:34.359    2980-2980/com.sapps.tools.dedykapp D/Atlas﹕ Validating map...
06-19 15:43:34.417    2980-3030/com.sapps.tools.dedykapp I/OpenGLRenderer﹕ Initialized EGL, version 1.4
06-19 15:43:34.423    2980-3030/com.sapps.tools.dedykapp D/OpenGLRenderer﹕ Enabling debug mode 0
06-19 15:43:34.576    2980-3046/com.sapps.tools.dedykapp E/Adreno-ES20﹕ <check_framebuffer_attachment:854>: Invalid texture format! Returning error!
06-19 15:43:34.576    2980-3046/com.sapps.tools.dedykapp E/Adreno-ES20﹕ <check_framebuffer_object_status:1237>: Framebuffer color attachment incomplete. Returning GL_FRAMEBUFFER_INCOMPLETE_ATTACHMENT!
06-19 15:43:34.622    2980-3030/com.sapps.tools.dedykapp E/Adreno-ES20﹕ <check_framebuffer_attachment:854>: Invalid texture format! Returning error!
06-19 15:43:34.622    2980-3030/com.sapps.tools.dedykapp E/Adreno-ES20﹕ <check_framebuffer_object_status:1237>: Framebuffer color attachment incomplete. Returning GL_FRAMEBUFFER_INCOMPLETE_ATTACHMENT!
06-19 15:43:34.884    2980-2980/com.sapps.tools.dedykapp W/BindingManager﹕ Cannot call determinedVisibility() - never saw a connection for the pid: 2980
06-19 15:43:36.742    2980-2980/com.sapps.tools.dedykapp E/RecyclerView﹕ No adapter attached; skipping layout
06-19 15:43:36.926    2980-2980/com.sapps.tools.dedykapp E/RecyclerView﹕ No adapter attached; skipping layout
06-19 15:43:41.519    2980-2991/com.sapps.tools.dedykapp I/art﹕ Debugger is no longer active
06-19 15:59:14.349    2980-2980/com.sapps.tools.dedykapp W/art﹕ Attempt to remove local handle scope entry from IRT, ignoring
06-19 15:59:14.355    2980-2980/com.sapps.tools.dedykapp W/AwContents﹕ onDetachedFromWindow called when already detached. Ignoring
06-19 15:59:14.684    2980-2980/com.sapps.tools.dedykapp W/BindingManager﹕ Cannot call determinedVisibility() - never saw a connection for the pid: 2980
06-19 15:59:14.902    2980-3030/com.sapps.tools.dedykapp E/Adreno-ES20﹕ <check_framebuffer_attachment:854>: Invalid texture format! Returning error!
06-19 15:59:14.902    2980-3030/com.sapps.tools.dedykapp E/Adreno-ES20﹕ <check_framebuffer_object_status:1237>: Framebuffer color attachment incomplete. Returning GL_FRAMEBUFFER_INCOMPLETE_ATTACHMENT!
06-19 15:59:21.278    2980-2980/com.sapps.tools.dedykapp W/art﹕ Attempt to remove local handle scope entry from IRT, ignoring
06-19 15:59:21.284    2980-2980/com.sapps.tools.dedykapp W/AwContents﹕ onDetachedFromWindow called when already detached. Ignoring
06-19 15:59:21.527    2980-2980/com.sapps.tools.dedykapp W/BindingManager﹕ Cannot call determinedVisibility() - never saw a connection for the pid: 2980
06-19 15:59:21.809    2980-3030/com.sapps.tools.dedykapp E/Adreno-ES20﹕ <check_framebuffer_attachment:854>: Invalid texture format! Returning error!
06-19 15:59:21.809    2980-3030/com.sapps.tools.dedykapp E/Adreno-ES20﹕ <check_framebuffer_object_status:1237>: Framebuffer color attachment incomplete. Returning GL_FRAMEBUFFER_INCOMPLETE_ATTACHMENT!
06-19 15:59:25.131    2980-2980/com.sapps.tools.dedykapp E/RecyclerView﹕ No adapter attached; skipping layout
06-19 15:59:25.182    2980-2980/com.sapps.tools.dedykapp E/RecyclerView﹕ No adapter attached; skipping layo

提前致谢!

尝试这个。

在您的PlannerActivity.java中声明

private RecyclerView.Adapter  adapter

然后在您的onCreate方法中,像这样找到它。

adapter = new DayRecAdapter(mon);

希望这能解决没有适配器附加的问题

如警告所述,您需要prior设置LayoutManager prior先设置适配器。

recyclerView.setAdapter(rvAdapter);
recyclerView.setLayoutManager(lManager);

我不确定是否可以像这样设置内部适配器。 我在外部RecyclerView的ViewHolder的构造函数中进行设置。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM