即使看起来一切正常,Recyclerview也不显示数据

问题描述 投票:0回答:1

这是下面的我的片段代码。

public class pendingactivity extends Fragment {

MyViewModel myViewModel;
List<Activity_> activity_list;
CheckBox act_check;
View view;
int project_id;
Projectid_pointing_towards_activity PPta;


public pendingactivity() {
    // Required empty public constructor
}


  @Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
                         Bundle savedInstanceState) {
    RecyclerView mrecyclerView;

    //Inflate the layout for this fragment
    view = inflater.inflate(R.layout.fragment_pendingactivity, container, false);
    mrecyclerView = (RecyclerView) view.findViewById(R.id.recycler_view_frag1);
    act_check = (CheckBox) view.findViewById(R.id.activity_check);
    myViewModel = ViewModelProviders.of(getActivity()).get(MyViewModel.class);
    myViewModel.GetAllPPTA().observe(this, new Observer<List<Projectid_pointing_towards_activity>>() 
    {
        @Override
        public void onChanged(List<Projectid_pointing_towards_activity> PPTA) {
            PPta = PPTA.get(1);
            project_id = PPta.getProject_id();
        }
    });
    LinearLayoutManager linearLayoutManager = new LinearLayoutManager(getActivity());
    mrecyclerView.setLayoutManager(linearLayoutManager);

    final activitycardAdaptor Acticityadaptor = new activitycardAdaptor(getContext(), project_id);


    myViewModel.GetAllActivity().observe(this, new Observer<List<Dactivity>>() {
        @Override
        public void onChanged(List<Dactivity> dactivities) {


            Acticityadaptor.setActivity(dactivities);

        }
    });
    mrecyclerView.setAdapter(Acticityadaptor);


    return view;

}

    @Override
    public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);


  }


 }

下面是我的Recyler适配器代码

package com.example.builderpro;



public class activitycardAdaptor extends RecyclerView.Adapter<ActivityCardViewHolder> {


private Context context;
private List<Dactivity> mactivity;
int project_id;


public activitycardAdaptor(Context context, int id) {
    this.context = context;
    this.project_id = id;
}

@Override
public ActivityCardViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
    View mview = LayoutInflater.from(parent.getContext()).inflate(R.layout.cardview_activity, parent, 
false);

    return new ActivityCardViewHolder(mview);
}

@Override
public void onBindViewHolder(ActivityCardViewHolder holder, int position) {
    Dactivity dactivity = mactivity.get(position);
    holder.Activity_title.setText(dactivity.getName());
    holder.Activity_Type.setText(dactivity.getType());
    Calendar calendar = Calendar.getInstance();
    String curentDate = DateFormat.getDateInstance(DateFormat.FULL).format(calendar.getTime());
    holder.Date.setText(curentDate);


}

@Override
public int getItemCount() {

    return mactivity == null ? 0 : mactivity.size();


}


public void setActivity(List<Dactivity> dactivities) {
    Dactivity current_activity;
    for (int i = 0; i < dactivities.size(); i++) {
        current_activity = dactivities.get(i);
        if (project_id == current_activity.getProject_id()) {
            mactivity.add(current_activity);
        }

    }
    notifyDataSetChanged();

}
}

class ActivityCardViewHolder extends RecyclerView.ViewHolder {
CardView mcardview;
TextView Activity_title, Activity_Type, Date;
CheckBox activity_check;


public ActivityCardViewHolder(View itemView) {
    super(itemView);

    Activity_title = itemView.findViewById(R.id.Activity_name);
    Activity_Type = itemView.findViewById(R.id.activity_type);
    Date = itemView.findViewById(R.id.date);
    activity_check = itemView.findViewById(R.id.activity_check);

    mcardview = itemView.findViewById(R.id.activity_card);


}
}

相同的代码,我在另一个片段和适配器中运行,并且在调试时没有错误。我尝试了很多Internet上可用的解决方案,但没有任何代码适合我。我认为数据未输入适配器中的活动列表名称。请帮助我,因为我坚持了大约3天。

android android-fragments android-recyclerview recycler-adapter
1个回答
0
投票

我不知道这是您的帖子中的错误还是代码中的错误,但是在这里final activitycardAdaptor Acticityadaptor = new activitycardAdaptor(getContext(), project_id);看起来有些奇怪,应该不是final ActivitycardAdaptor acticityAdaptor = new ActivitycardAdaptor(getContext(), project_id);吗?

© www.soinside.com 2019 - 2024. All rights reserved.