Я занимаюсь разработкой простого приложения To Do. Recyclerview получает предметы из базы данных Sqlite. Нажав указанный элемент c, я хочу назначить дату из календаря этому элементу. Теперь я хочу запланировать каждый пункт в обзоре с указанием даты. У меня проблема с назначением даты / времени конкретному элементу c, потому что, когда я добавляю дату, он отображается как следующий элемент в обзоре переработчика
@Override
public void onBindViewHolder(@NonNull final MyHolder holder, final int position) {
final InboxViewModel inboxViewModel = (InboxViewModel) arrayList.get(position);
holder.textView.setText(inboxViewModel.getText());
holder.date.setText(inboxViewModel.getDate());
setAnimation(holder.itemView, position);
MainClass is:
public class InboxFragment extends Fragment{
RecyclerView inbox_recyclerview;Inbox_Adapter adapter;
ArrayList arrayList;
String myId,myTask,myDate; int pos;String dt;
MyDatabase db;
private InboxViewModel inboxViewModel;
FragmentHelper fragmentHelper; BottomSheetListener bottomSheetListener;
RelativeLayout relativeLayout; DataController dataController;
ActivityMain activityMain;
@Override
public void onAttach(@NonNull Context context) {
super.onAttach(context);
fragmentHelper = (FragmentHelper) context;
bottomSheetListener=(BottomSheetListener)context;
dataController=(DataController)context;
activityMain=(ActivityMain)context;
}
public View onCreateView(@NonNull LayoutInflater inflater,
ViewGroup container, Bundle savedInstanceState) {
View root = inflater.inflate(R.layout.fragment_inbox, container, false);
relativeLayout=root.findViewById(R.id.relative1);
arrayList=new ArrayList<>();
inbox_recyclerview=root.findViewById(R.id.inbox_recycler);
inbox_recyclerview.setLayoutManager(new LinearLayoutManager(getContext()));
inbox_recyclerview.setHasFixedSize(true);
// dataController.onGetData();
MyDatabase myDatabase = new MyDatabase(getContext());
Cursor c = myDatabase.getData();
if (c.getCount() == 0) {
Toast.makeText(getContext(), "no data available", Toast.LENGTH_SHORT).show();
} else {
if (c.moveToFirst()) {
do {
myId = c.getString(c.getColumnIndex(myDatabase.id));
myTask = c.getString(c.getColumnIndex(myDatabase.task_col));
myDate = c.getString(c.getColumnIndex(myDatabase.date_col));
inboxViewModel =new InboxViewModel(myTask,myId,myDate);
arrayList.add(inboxViewModel);
} while (c.moveToNext());
{
adapter=new Inbox_Adapter(getActivity(),arrayList,fragmentHelper,bottomSheetListener);
inbox_recyclerview.setAdapter(adapter);
adapter.notifyDataSetChanged();
}
}
}
inbox_recyclerview.setItemAnimator(new DefaultItemAnimator());
inbox_recyclerview.addItemDecoration(new DividerItemDecoration(getActivity(),DividerItemDecoration.VERTICAL));
return root;
}
}
MainFragmentClass is:
public class InboxFragment extends Fragment{
RecyclerView inbox_recyclerview;Inbox_Adapter adapter;
ArrayList arrayList;
String myId,myTask,myDate; int pos;String dt;
MyDatabase db;
private InboxViewModel inboxViewModel;
FragmentHelper fragmentHelper; BottomSheetListener bottomSheetListener;
RelativeLayout relativeLayout; DataController dataController;
ActivityMain activityMain;
@Override
public void onAttach(@NonNull Context context) {
super.onAttach(context);
fragmentHelper = (FragmentHelper) context;
bottomSheetListener=(BottomSheetListener)context;
dataController=(DataController)context;
activityMain=(ActivityMain)context;
}
public View onCreateView(@NonNull LayoutInflater inflater,
ViewGroup container, Bundle savedInstanceState) {
View root = inflater.inflate(R.layout.fragment_inbox, container, false);
relativeLayout=root.findViewById(R.id.relative1);
arrayList=new ArrayList<>();
inbox_recyclerview=root.findViewById(R.id.inbox_recycler);
inbox_recyclerview.setLayoutManager(new LinearLayoutManager(getContext()));
inbox_recyclerview.setHasFixedSize(true);
// dataController.onGetData();
MyDatabase myDatabase = new MyDatabase(getContext());
Cursor c = myDatabase.getData();
if (c.getCount() == 0) {
Toast.makeText(getContext(), "no data available", Toast.LENGTH_SHORT).show();
} else {
if (c.moveToFirst()) {
do {
myId = c.getString(c.getColumnIndex(myDatabase.id));
myTask = c.getString(c.getColumnIndex(myDatabase.task_col));
myDate = c.getString(c.getColumnIndex(myDatabase.date_col));
inboxViewModel =new InboxViewModel(myTask,myId,myDate);
arrayList.add(inboxViewModel);
} while (c.moveToNext());
{
adapter=new Inbox_Adapter(getActivity(),arrayList,fragmentHelper,bottomSheetListener);
inbox_recyclerview.setAdapter(adapter);
adapter.notifyDataSetChanged();
}
}
}