2016-03-29 19 views
0

Kullanıcının TimePicker kullanıyorum için farklı farklı metin görünümlerinde 3 farklı zaman ayarlamasına izin vermem gereken bir modül üzerinde çalışıyorum.TimePicker her TextView'de aynı zamanı gösteriyor

Ancak TimePicker'da zaman seçtiğimde, diğer iki TextView'de aynı zamanı gösterir.

Nedeni ne olabilir?

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' ve' mTime3' tam olarak aynı görünüme sahiptir. Bir şey mi eksik? – Blackbelt

+1

@Blackbelt lol, aynı – HendraWD

+0

olduğu için, zaman seçerken ve görüntülediğiniz zamana göre ayarlanan zaman ayarındayken metin görüntünüzü geçmeniz gerekir; burada, ayarlamanız gerekenden bağımsız olarak, her üç metin görünümünde zaman belirliyorsunuz. –

cevap

0

Ama TimePicker diğer iki TextView'lar aynı süresini gösteren zaman her seçtiğinizde.

, aynı zamanda bunları ayarlıyorsunuz!

@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

Tamam anladım. Bir çözüm bulabilir miyim? – Sun

+0

Buna bağlı olarak, ne elde etmeye çalışıyorsunuz? TimePickerDialog’u açmak için 3 ayrı düğmeniz var mı? –

+0

evet Üç farklı kez 2 farklı görüşme kullanıyorum, bu yüzden şu kodları kullanıyorum: https://github.com/blanyal/Remindly/blob/master/app/src/main/java/ com/blanyal/remindme/ReminderAddActivity.java – Sun

0

// zaman seçiciden zaman elde

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

Çünkü tek yönteminde her üç saati ayarlayın ve metin görünümünde ayarlayın her zaman. Dikkatlice kontrol edin ve tekrar kodlayın.

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

Muhtemelen geri arama ile kimlerin hedeflendiğini özlediniz, böylece tüm metin görünümlerini geçersiz kılabilirsiniz. Gerçek view olduğunu ve kablolu nasıl, bunu eğer koşulu ile size yardımcı olamaz neyi bilgiler olmadan

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

: Sen buna benzer bir şey kullanmalıdır.

Ben ReminderAddActivity ve TimePickerDialog hızlı bir inceleme yaptık, her bağımsız metin görünümüne TimePickerDialog uygulamak gerekir. Sonunda, onu bir araya getirmek yerine birden çok kez kontrol eden kullanım. Kullandığınız kitaplığı yeniden yazmadan bu şekilde çalışmayacak.

+0

Cevabınızı faydalı olarak eklemeyi unuttum, bu yüzden onu dokundum :) – Sun