2017-07-01 13 views
0

は、Javaコードです:Android TimePickerを選択した時間を表示するにはどうすればいいですか?ここ

public class ReservationFragment extends DialogFragment implements AdapterView.OnItemSelectedListener, View.OnClickListener { 

private ReservationFragment.OnFragmentInteractionListener mListener; 

private EditText fromDateEtxt; 
private EditText fromTimeEtxt; 


private DatePickerDialog fromDatePickerDialog; 
private TimePickerDialog fromTimePickerDialog; 

private SimpleDateFormat dateFormatter; 
private SimpleDateFormat timeFormatter; 

public ReservationFragment() { 

} 

@Override 
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { 

    View v = inflater.inflate(R.layout.fragment_reservation, container, false); 

    /** Date & Time Picker **/ 

    dateFormatter = new SimpleDateFormat("dd.MM.yyyy", Locale.US); 
    fromDateEtxt = (EditText) v.findViewById(R.id.reservation_etxt6); 
    fromDateEtxt.setInputType(InputType.TYPE_NULL); 
    fromDateEtxt.requestFocus(); 

    timeFormatter = new SimpleDateFormat("hh:mm", Locale.US); 
    fromTimeEtxt = (EditText) v.findViewById(R.id.reservation_etxt7); 
    fromTimeEtxt.setInputType(InputType.TYPE_NULL); 
    fromTimeEtxt.requestFocus(); 

    setDateField(); 
    setTimeField(); 

    return v; 
} 

private void setDateField() { 

    fromDateEtxt.setOnClickListener(this); 

    java.util.Calendar newCalendar = java.util.Calendar.getInstance(); 

    fromDatePickerDialog = new DatePickerDialog(getActivity(), R.style.DialogTheme, new DatePickerDialog.OnDateSetListener() { 

     public void onDateSet(DatePicker view, int year, int monthOfYear, int dayOfMonth) { 
      java.util.Calendar newDate = java.util.Calendar.getInstance(); 
      newDate.set(year, monthOfYear, dayOfMonth); 
      fromDateEtxt.setText(dateFormatter.format(newDate.getTime())); 

      Toast.makeText(getActivity(), "You choose: " + dayOfMonth + "." + (monthOfYear + 1) + "." + year, Toast.LENGTH_LONG).show(); 
     } 

    },newCalendar.get(Calendar.YEAR), newCalendar.get(java.util.Calendar.MONTH), newCalendar.get(Calendar.DAY_OF_MONTH)); 
} 

private void setTimeField(){ 

    fromTimeEtxt.setOnClickListener(this); 

    java.util.Calendar newCalendar = java.util.Calendar.getInstance(); 

    fromTimePickerDialog = new TimePickerDialog(getActivity(), R.style.DialogTheme, new TimePickerDialog.OnTimeSetListener(){ 

     public void onTimeSet(TimePicker view, int hourOfDay, int minute) { 
      java.util.Calendar newTime = java.util.Calendar.getInstance(); 
      newTime.set(hourOfDay, minute); 
      fromTimeEtxt.setText(timeFormatter.format(newTime.getTime())); 

      Toast.makeText(getActivity(), "You choose: " + hourOfDay + ":" + minute, Toast.LENGTH_LONG).show(); 
     } 

    },newCalendar.get(java.util.Calendar.HOUR_OF_DAY), newCalendar.get(java.util.Calendar.MINUTE), false); 

} 

@Override 
public void onClick(View v) { 
    if(v == fromDateEtxt) { 
     fromDatePickerDialog.show(); 
    } 
    else if(v == fromTimeEtxt) { 
     fromTimePickerDialog.show(); 
    } 
} 

、私を助けてください。すべて正常に動作しますが、私はちょうどEditText NOT CURRENT TIMEに選択した時間を入れたいと思います。

しかし、私は自分のトーストがうまく動作することを伝えなければなりません、それは選択された時間を表示しますが、EditTextは表示されません。

答えて

0

間違った値をCalendar.set(int, int)に渡しています。 the documentationをご覧ください。それはこのようなものでなければなりません

java.util.Calendar newTime = java.util.Calendar.getInstance(); 
newTime.set(Calendar.HOUR_OF_DAY, hourOfDay); 
newTime.set(Calendar.MINUTE, minute); 
fromTimeEtxt.setText(timeFormatter.format(newTime.getTime()) 
+0

はどうもありがとうございました!あなたは私の日を救った:))) – Amila

+0

あなたは大歓迎です:) –

関連する問題