Отрисовка данных не работает для сенсорного события TextView в Android - PullRequest
0 голосов
/ 20 марта 2020

В приведенном ниже файле XML содержатся два TextView с именами all и incomplete.

TextView: all - Означает, что я отображаю завершенный список.

TextView: incomplete - совпадение внутреннего состояния с последующим отображением только неполного списка.

Но это не работает каждый раз, когда отображается полный список. Таким же образом я возвратил код на сегодняшнюю дату

Может кто-нибудь помочь мне решить эту проблему?

xml:

<LinearLayout
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:orientation="horizontal"
            android:layout_gravity="center"
            android:gravity="center"
            android:paddingTop="10dp"
            android:id="@+id/luminary_controll">

            <LinearLayout
                android:layout_width="match_parent"
                android:layout_height="match_parent"
                android:layout_weight="1"
                android:orientation="vertical">

                <TextView
                    android:id="@+id/all"
                    android:layout_width="match_parent"
                    android:layout_height="wrap_content"
                    android:gravity="center"
                    android:text="All"
                    android:textStyle="bold"
                    android:textColor="@color/black"
                    android:textSize="18sp"
                    android:layout_marginBottom="1dp"/>



            </LinearLayout>

            <LinearLayout
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:layout_weight="1"
                android:orientation="vertical">

                <TextView
                    android:id="@+id/incomplete"
                    android:layout_width="match_parent"
                    android:layout_height="wrap_content"
                    android:gravity="center"
                    android:textColor="@color/black"
                    android:text="In complete"
                    android:textStyle="bold"
                    android:textSize="18sp"
                    android:layout_marginBottom="1dp"/>
            </LinearLayout>
 </LinearLayout>

Ниже приведен код для onTouchListener как неполное, так и все.

java:

OntouchListner

incomplete.setOnTouchListener(new View.OnTouchListener() {
            @SuppressLint("ResourceAsColor")
            @Override
            public boolean onTouch(View v, MotionEvent event) {
                boolean isDuplicate = false;
                incomplete.setTextColor(ContextCompat.getColor(getContext(), R.color.tabs1));
                today.setTextColor(ContextCompat.getColor(getContext(), R.color.black));
                all.setTextColor(ContextCompat.getColor(getContext(), R.color.black));
                weekwise.setTextColor(ContextCompat.getColor(getContext(), R.color.black));
                String apiResponseStr = PreferenceManagerTask.getInstance(requireContext()).getAPIResponseTask(); // so you have to press your refresh buttonok

                if (!apiResponseStr.equals("")){
                    Gson gson = new Gson();
                    SyncModule obj = gson.fromJson(apiResponseStr, SyncModule.class);
                    workingOnResponse(obj);
                }
                return true;
            }
        });

        all.setOnTouchListener(new View.OnTouchListener() {
            @SuppressLint("ResourceAsColor")
            @Override
            public boolean onTouch(View v, MotionEvent event) {


              //  incomplete.setTextColor(ContextCompat.getColor(getContext(), R.color.White));
              //  all.setBackgroundColor(ContextCompat.getColor(getContext(), R.color.tabs1));
                all.setTextColor(ContextCompat.getColor(getContext(), R.color.tabs1));
                incomplete.setTextColor(ContextCompat.getColor(getContext(), R.color.black));
                today.setTextColor(ContextCompat.getColor(getContext(), R.color.black));
                weekwise.setTextColor(ContextCompat.getColor(getContext(), R.color.black));
                return true;
            }
        });

 private void workingOnResponse(SyncModule syncModule){
        isdate=true;
        String success = syncModule.getSuccess();

        if (success.equals("true")) {
            SyncResults results = syncModule.getResult();

            Sync sync = results.getSync();

            ArrayList<SyncUpdated> syncUpdateds = sync.getUpdated();

            for (SyncUpdated syncUpdated : syncUpdateds) {

                ArrayList<SyncBlocks> syncBlocks = syncUpdated.getBlocks();

                String value = "";
                String subject = "";
                String taskType = "";
                String assigned = "";
                String scheduleDates = "";
                String scheduleDate = "";
                String location = "";
                String opportunityNo = "";
                status = "";
                String outcome = "";
                String createdtime = "";
                String modifiedtime = "";
                String modifiedby = "";
                String remark = "";
                String activitytype = "";
                String parent_id="";

                for (SyncBlocks syncBlocks1 : syncBlocks) {

                    String label = syncBlocks1.getLabel();
                    if (label.equals("Task Details")) {
                        ArrayList<SynFields> synFields = syncBlocks1.getFields();

                        for (SynFields synFields1 : synFields) {
                            name = synFields1.getName();
                            values = synFields1.getValue();
                            if (name.equals("date_start")) {
                                scheduleDates = String.valueOf(values);
                                DateFormat inputFormat = new SimpleDateFormat("yyyy-MM-dd");
                                DateFormat outputFormat = new SimpleDateFormat("dd-MM-yyyy");
                               // String inputDateStr="2013-06-24";
                                Date date = null;
                                try {
                                    date = inputFormat.parse(scheduleDates);
                                    scheduleDate = outputFormat.format(date);
                                } catch (ParseException e) {
                                    e.printStackTrace();
                                }


                            } else if (name.equals("taskstatus")) {
                                status = String.valueOf(values);


                        }
                    }
                    PreferenceManagerTask.getInstance(requireContext()).setMultipleData(subject, taskType, assigned, scheduleDate, location, opportunityNo, status, outcome);
                }

                TaskModel taskModel = new TaskModel(subject, taskType, assigned, scheduleDate, location, opportunityNo, status, " " + outcome + " ", createdtime, modifiedtime, activitytype, modifiedby, remark, parent_id);

                if(name.equals("taskstatus")){
                for (TaskModel taskModel1 : listTask) {
                    if (taskModel1.getStatus().equals(incomplete.getText())) {
                        isDuplicate = true;
                        listTask.add(taskModel);
                        taskAdapter.notifyDataSetChanged();

                    }
                }
                }else if(name.equals("date_start")){
                    String date = new SimpleDateFormat("dd-MM-yyyy", Locale.getDefault()).format(new Date());
                    if(scheduleDate.equals(date)) {
                        listTask.add(taskModel);
                        taskAdapter.notifyDataSetChanged();
                    }
                }else {
                    listTask.add(taskModel);
                    taskAdapter.notifyDataSetChanged();
                }
                }
...