2016-03-29 4 views
0

Я работаю над модулем, где я должен разрешить пользователю устанавливать 3 разных раза в разных разных текстах, потому что я использую TimePicker.TimePicker, показывающий одно и то же время в каждом TextView

Но всякий раз, когда я выбираю время в TimePicker, он показывает то же время в других двух TextViews.

И что может быть причиной?

private String textViewTime1, textViewTime2, textViewTime3; 
private String mTime1, mTime2, mTime3; 

// On clicking Time picker 
    public void setTime(View v){ 
     Calendar now = Calendar.getInstance(); 
     TimePickerDialog tpd = TimePickerDialog.newInstance(
       this, 
       now.get(Calendar.HOUR_OF_DAY), 
       now.get(Calendar.MINUTE), 
       false 
     ); 
     tpd.setThemeDark(false); 
     tpd.show(getFragmentManager(), "Timepickerdialog"); 
    } 

// Obtain time from time picker 
    @Override 
    public void onTimeSet(RadialPickerLayout view, int hourOfDay, int minute) { 
     mHour = hourOfDay; 
     mMinute = minute; 
     if (minute < 10) { 
      mTime1 = hourOfDay + ":" + "0" + minute; 
      mTime2 = hourOfDay + ":" + "0" + minute; 
      mTime3 = hourOfDay + ":" + "0" + minute; 
     } else { 
      mTime1 = hourOfDay + ":" + minute; 
      mTime2 = hourOfDay + ":" + minute; 
      mTime3 = hourOfDay + ":" + minute; 
     } 
     textViewTime1.setText(mTime1); 
     textViewTime2.setText(mTime2); 
     textViewTime3.setText(mTime3); 
    } 
+3

'mTime1'' mTime2' и 'mTime3' выглядят одинаково для меня. Я что-то упускаю? – Blackbelt

+1

@Blackbelt lol, потому что они такие же – HendraWD

+0

, вам нужно передать свое текстовое изображение, когда вы выбираете время и задаете время в тексте, который вы прошли, здесь вы устанавливаете время во всех трех текстовых заметках, независимо от того, для чего вам нужно установить. –

ответ

0

Но всякий раз, когда я выбираю время в TimePicker он показывает то же время в других два TextViews.

Потому что, вы устанавливаете их в то же время!

@Override 
    public void onTimeSet(RadialPickerLayout view, int hourOfDay, int minute) { 
     mHour = hourOfDay; 
     mMinute = minute; 
     if (minute < 10) { 
      /// Time set to mTime1 
      mTime1 = hourOfDay + ":" + "0" + minute; 
      /// Time set to mTime2 same 
      mTime2 = hourOfDay + ":" + "0" + minute; 
      /// Time set to mTime3 same 
      mTime3 = hourOfDay + ":" + "0" + minute; 
     } else { 
      /// Time set to mTime1 
      mTime1 = hourOfDay + ":" + minute; 
      /// Time set to mTime2 same 
      mTime2 = hourOfDay + ":" + minute; 
      /// Time set to mTime3 same 
      mTime3 = hourOfDay + ":" + minute; 
     } 
     textViewTime1.setText(mTime1); 
     textViewTime2.setText(mTime2); 
     textViewTime3.setText(mTime3); 
    } 
+0

Хорошо, я понял. Могу ли я получить решение? – Sun

+0

Это зависит от того, чего вы пытаетесь достичь? У вас есть 3 отдельных кнопки для открытия 'TimePickerDialog'? –

+0

yes Я использую три разных текста, чтобы установить три разных раза в этом ... Я использую следующий код: https://github.com/blanyal/Remindly/blob/master/app/src/main/java/ com/blanyal/remindme/ReminderAddActivity.java – Sun

0

// Получить время от времени подборщика

@Override 
    public void onTimeSet(RadialPickerLayout view, int hourOfDay, int minute) { 
     mHour = hourOfDay; 
     mMinute = minute; 

Потому что каждый раз, когда вы установите все три раза в одном методе и установить его в текстовом виде. Проверьте внимательно и введите код.

if (minute < 10) { 
      mTime1 = hourOfDay + ":" + "0" + minute; 
      mTime2 = hourOfDay + ":" + "0" + minute; 
      mTime3 = hourOfDay + ":" + "0" + minute; 
     } else { 
      mTime1 = hourOfDay + ":" + minute; 
      mTime2 = hourOfDay + ":" + minute; 
      mTime3 = hourOfDay + ":" + minute; 
     } 
     textViewTime1.setText(mTime1); 
     textViewTime2.setText(mTime2); 
     textViewTime3.setText(mTime3); 
    } 
2

Возможно, вы пропустили, кто должен был быть нацелен с обратным вызовом, чтобы вы переопределили все текстовые виды. Вы должны использовать что-то похожее на это:

if(view belongs to textViewTime1) 
    textViewTime1.setText(mTime1); 
if(view belongs to textViewTime2) 
    textViewTime2.setText(mTime2); 
if(view belongs to textViewTime3) 
    textViewTime3.setText(mTime3); 

Без информации, что view фактических и как он подключен, я не могу помочь вам в этом, если условиях.

Я сделал краткий обзор ReminderAddActivity и TimePickerDialog, вам необходимо применить TimePickerDialog к каждому независимому текстовому виду. В конце концов используйте это несколько раз, вместо того чтобы взломать его вместе. Это не будет работать без перезаписи той библиотеки, которую вы используете.

+0

Я забыл использовать ваш ответ как полезный, поэтому я просто нажал его :) – Sun

Смежные вопросы