2017-02-02 11 views
1

を2つに設定したい場合はEditTextを選択しますが、時間ピッカーを選択すると、同じ時刻が両方ともEditTextに表示されます。2つの異なるEditTextで2つのタイムピッカーを設定するには?

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. にOnclickオープンタイムピッカーダイアログの両方の編集テキストのクリックイベントを処理しますが好きですか
  2. 時間を設定する
関連する問題