Конструктор Recyclerview не сохраняет аргумент - PullRequest
0 голосов
/ 25 апреля 2020

Это мой фрагментный класс, в котором я вызываю конструктор класса адаптера recyclerview и передаю ему значение int. Имя аргумента конструктора - project_id. Класс project_id не показывает никаких данных. Проблема в том, что я посылаю данные конструктором, но не получаю. Функция setActivity возвращает значение int только для моих целей тестирования, если у идентификатора проекта есть данные или нет, но возвращаемое значение этой функции равно 0, но я отправляю 1.

public class activitycardAdaptor extends RecyclerView.Adapter<ActivityCardViewHolder> {


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


public activitycardAdaptor(int project_id) {
    this.project_id = project_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 int setActivity(List<Dactivity> dactivities) {
    mactivity=new ArrayList<>();

    for(int i=0;i<dactivities.size();i++)
    {
        Dactivity currentproject= dactivities.get(i);
        if(project_id==currentproject.getProject_id())
        {
            mactivity.add(currentproject);



        }
    }



    notifyDataSetChanged();
    return project_id;

}
  }

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);


}
}

Пожалуйста, помогите мне в этом, потому что я Я застрял на этом около 5 дней.

1 Ответ

0 голосов
/ 25 апреля 2020

Как насчет вызова этой линии:

final activitycardAdaptor Acticityadaptor = new activitycardAdaptor(project_id);

Здесь:

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();

//here make it  member variable of your class and initialize here
 Acticityadaptor = new activitycardAdaptor(project_id);
}
});
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...