Как назначить дату / время для указанного элемента c в RecyclerView? - PullRequest
0 голосов
/ 24 февраля 2020

Я занимаюсь разработкой простого приложения 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();
                    }
                    }
                }
...