2017-02-02 1 views
1

2 개를 EditText 두 개로 설정하려면 TimePicker을 설정하고 싶습니다. 그러나 시간 선택기를 선택하면 모두 EditText에 같은 시간이 표시됩니다.2 개의 다른 EditText에서 2 개의 timepicker를 설정하는 방법은 무엇입니까?

for. 예 : Starttime (EditText) TimePicker을 선택하면 Endtime (EditText)에도 자동으로 설정됩니다. 여기

코드 : -

main.java

starttime.setOnClickListener(new View.OnClickListener() { 
      @Override 
      public void onClick(View view) { 
       // Initialize a new time picker dialog fragment 
       DialogFragment dFragment = new TimePickerFragment(); 

       // Show the time picker dialog fragment 
       dFragment.show(getActivity().getFragmentManager(),"Time Picker"); 
       isFromClicked = false; 
      } 
     }); 
     endtime.setOnClickListener(new View.OnClickListener() { 
      @Override 
      public void onClick(View view) { 
       // Initialize a new time picker dialog fragment 
       DialogFragment dFragment1 = new TimePickerFragment(); 

       // Show the time picker dialog fragment 
       dFragment1.show(getActivity().getFragmentManager(),"Time Picker"); 
       isFromClicked = true; 

      } 
     }); 

TimePickerFragment.java

public class TimePickerFragment extends DialogFragment implements TimePickerDialog.OnTimeSetListener{ 

    @Override 
    public Dialog onCreateDialog(Bundle savedInstanceState){ 
     // Get a Calendar instance 
     final Calendar calendar = Calendar.getInstance(); 
     // Get the current hour and minute 
     int hour = calendar.get(Calendar.HOUR); 
     int minute = calendar.get(Calendar.MINUTE); 


     // TimePickerDialog Theme : THEME_DEVICE_DEFAULT_LIGHT 
     TimePickerDialog tpd = new TimePickerDialog(getActivity(), 
       AlertDialog.THEME_DEVICE_DEFAULT_LIGHT,this,hour,minute,false); 


     // Return the TimePickerDialog 
     return tpd; 
    } 

    public void onTimeSet(TimePicker view, int hourOfDay, int minute){ 

     String am_pm = ""; 

     Calendar datetime = Calendar.getInstance(); 
     datetime.set(Calendar.HOUR_OF_DAY, hourOfDay); 
     datetime.set(Calendar.MINUTE, minute); 

     if (datetime.get(Calendar.AM_PM) == Calendar.AM) 
      am_pm = "AM"; 
     else if (datetime.get(Calendar.AM_PM) == Calendar.PM) 
      am_pm = "PM"; 

     String strHrsToShow = (datetime.get(Calendar.HOUR) == 0) ?"12":datetime.get(Calendar.HOUR)+""; 

     ((EditText)getActivity().findViewById(R.id.start_time)).setText(strHrsToShow+":"+datetime.get(Calendar.MINUTE)+" "+am_pm); 

     ((EditText)getActivity().findViewById(R.id.End_time)).setText(strHrsToShow+":"+datetime.get(Calendar.MINUTE)+" "+am_pm); 

    } 
} 

답변

0

시간 선택기에이 클래스를 사용하십시오. 나는 그것을 사용하고 그것은 2 editexts

작동
public class TimePicker extends DialogFragment implements TimePickerDialog.OnTimeSetListener { 
    TextView textView; 
    Context context; 
    private TimePickerDialog timePickerDialog; 

    public TimePicker(EditText text, Context context) { 
     this.text= textView; 
     this.context = context; 
    } 

    public TimePicker() { 
    } 

    @Override 
    public Dialog onCreateDialog(Bundle savedInstanceState) { 
     // Use the current time as the default values for the picker 
     final Calendar c = Calendar.getInstance(); 
     int hour = c.get(Calendar.HOUR_OF_DAY); 
     int minute = c.get(Calendar.MINUTE); 

     // Create a new instance of TimePickerDialog and return it 
     return new TimePickerDialog(getActivity(), this, hour, minute, 
       DateFormat.is24HourFormat(getActivity())); 
    } 

    @Override 
    public void onTimeSet(android.widget.TimePicker view, int hourOfDay, int minute) { 
     Time t = new Time(hourOfDay,minute,0);//seconds by default set to zero 
     Format formatter; 
     formatter = new SimpleDateFormat("h:mm a", Locale.ENGLISH); 
     String time = formatter.format(t); 
      textView.setText(hourOfDay+":"+minute); 
    } 

} 

사용법 :

TimePicker timePicker = new TimePicker(editTextName, getActivity()); 
timePicker.show(getActivity().getSupportFragmentManager(), "Start Time"); 
0

음, 정확히 당신이 그것을 말하고있는 무슨 짓

여기

동일한 값

+0

난 다음도 작동하지 않는 문자열의 이름을 모두 변경 .. – Andie

0

에 EditTexts 양의 텍스트를 설정이

  1. 온 클릭 개방 시간 선택기 대화는 모두 텍스트 편집의 클릭 이벤트를 처리 좋아하세요
  2. 시간 설정
관련 문제