Сравнение двух часов строки в Java Errorr - PullRequest
0 голосов
/ 23 апреля 2019

У меня ошибка из-за того, что мое приложение останавливается, когда я сравниваю 2 строковых часа (время, время2), первое из которых берется из результатов моего выбора времени, а другое - время на моем смартфоне

Неудачные способы, которыми я пытался сравнить купленные строки:

Первый способ:

          if(time.equals(time2))
          {

             Toast.makeText(getApplicationContext(), "SAME VALUE: "+time, Toast.LENGTH_LONG).show();
          }
          else
          {

          }

Второй способ:

          if(time == time2)
          {

             Toast.makeText(getApplicationContext(), "SAME VALUE: "+time, Toast.LENGTH_LONG).show();
          }
          else
          {

          }

Здесь весь код

                 @Override
                public void onTimeSet(TimePicker view, int hour, int minute) {

                    TextView textView = (TextView)findViewById(R.id.timetext);
                    textView.setText("Hour: " + hour + "   Minutes:" + minute );

                    String Shour = Integer.toString(hour);
                    String Sminute = Integer.toString(minute);
                    final String time2 = Shour + ":" +Sminute;
                    Calendar calendar = Calendar.getInstance();
                    SimpleDateFormat format = new SimpleDateFormat("HH:mm");

                    final String time = format.format(calendar.getTime());
                    Toast.makeText(getApplicationContext(), "vlaue is "+time, Toast.LENGTH_LONG).show();

                    Timer t = new Timer();
                    t.scheduleAtFixedRate(new TimerTask() {
                        @Override
                        public void run() {
                            if(time.equals(time2)){
                                Toast.makeText(getApplicationContext(), "SAME VALUE: "+time, Toast.LENGTH_LONG).show();
                            }
                            else{

                            }
                        }
                    },0,1000);
                }

1 Ответ

0 голосов
/ 23 апреля 2019

Объединение того, что @racraman упомянул в комментариях о timer2 и ответе выше.Вот ответ

     ...
     // format the string of timer2 to add a zero when it is a single digit so that it matches with the date format you have used ie HH:mm
      @Override
            public void onTimeSet(TimePicker view, int hour, int minute) {

                TextView textView = (TextView)findViewById(R.id.timetext);
                textView.setText("Hour: " + hour + "   Minutes:" + minute );

                // String Shour = Integer.toString(hour);
                // String Sminute = Integer.toString(minute);
                final String time2 = String.format(Locale.getDefault(),"%02d:%02d", hour, minute);
                Calendar calendar = Calendar.getInstance();
                SimpleDateFormat format = new SimpleDateFormat("HH:mm");

                final String time = format.format(calendar.getTime());
                Toast.makeText(getApplicationContext(), "vlaue is "+time, Toast.LENGTH_LONG).show();

                Timer t = new Timer();
                t.scheduleAtFixedRate(new TimerTask() {
                    @Override
                    public void run() {
                        if(time.equals(time2)){
                            // Toast.makeText(getApplicationContext(), "SAME VALUE: "+time, Toast.LENGTH_LONG).show();
                            runOnUiThread(new Runnable() {
                              public void run() {
                                 Toast.makeText(getApplicationContext(), "SAME VALUE: "+time, Toast.LENGTH_LONG).show();
                              }
                            }
                        }
                        else{

                        }
                    }
                },0,1000);
            }

. Кроме того, по мере продвижения вы научитесь эффективно использовать Logcat с различными методами ведения журнала, а также с инструментами отладки, добавляя точки останова (они более эффективны при поиске ошибок в вашем приложении).)

...