2017-02-02 4 views
1

Ich möchte zwei TimePicker in Zwei EditText setzen, aber wenn ich einen beliebigen Zeit Picker wählen wird es die gleiche Zeit in beiden EditText angezeigt.Wie setze ich 2 Timepicker in 2 verschiedenen EditText?

für. ex: Wenn ich Starttime (EditText) TimePicker wähle, dann wird es automatisch in Endtime (EditText) auch gesetzt.

Hier ist der Code: -

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); 

    } 
} 

Antwort

0

Verwenden Sie diese Klasse für die Zeitauswahl. Ich habe es benutzt und es funktioniert für 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); 
    } 

} 

Verbrauch:

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

Nun, es tut genau das, was Sie es doch sagen, zu tun

((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); 

Hier stellen Sie den Text der beiden EditTexts auf die gleichen Werte

+0

ich den Namen Zeichenfolge ändern und alle dann arbeiten auch nicht .. – Andie

0

gefällt das

  1. das Click-Ereignis von Text bearbeiten Griff
  2. Onclick öffnen Time Picker Dialog
  3. Stellen Sie die Zeit ein
Verwandte Themen