嗨,試圖從它們各自的類中獲取日期和時間的值,並將它們設置在片段中的文本視圖中。 香港專業教育學院試圖將它設置在一個變量和方法調用它,但它似乎並沒有工作從片段內的DialogFragment獲取日期和時間的值Android
這是我在該片段中類代碼,我想設置textviews set_date和set_time
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
View view = inflater.inflate(R.layout.fragment_edit_timetable, container, false);
selectDate = (Button) view.findViewById(R.id.selectDate);
selectTime = (Button) view.findViewById(R.id.selectTime);
set_date = (TextView) view.findViewById(R.id.set_date);
set_time = (TextView) view.findViewById(R.id.set_time);
selectDate.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View arg0) {
// Show Date dialog
DialogFragment newFragment = new SelectDateFragment();
newFragment.show(getActivity().getFragmentManager(), "Date Picker");
}
});
selectTime.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View arg0) {
// Show time dialog
DialogFragment newFragment = new SelectTimeFragment();
//newFragment.show(getActivity().getFragmentManager(), DIALOG_TIME);
newFragment.show(getActivity().getFragmentManager(), "Time Picker");
}
});
return view;
}
SelectDateFragment類
public class SelectDateFragment extends DialogFragment implements DatePickerDialog.OnDateSetListener {
private String date = "";
@Override
public Dialog onCreateDialog(Bundle savedInstanceState) {
final Calendar calendar = Calendar.getInstance();
int yy = calendar.get(Calendar.YEAR);
int mm = calendar.get(Calendar.MONTH);
int dd = calendar.get(Calendar.DAY_OF_MONTH);
return new DatePickerDialog(getActivity(), this, yy, mm, dd);
}
@Override
public void onDateSet(DatePicker view, int yy, int mm, int dd) {
populateSetDate(yy, mm+1, dd);
}
public void populateSetDate(int year, int month, int day) {
date = month+"/"+day+"/"+year;
}
public String getDate() {
return date;
}
SelectTimeFragment類
public class SelectTimeFragment extends DialogFragment implements TimePickerDialog.OnTimeSetListener {
private String time = "";
public SelectTimeFragment() {
}
@Override
public Dialog onCreateDialog(Bundle savedInstanceState) {
// Use the current time as the default values for the picker
final Calendar calendar = Calendar.getInstance();
int hour = calendar.get(Calendar.HOUR_OF_DAY);
int minute = calendar.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(TimePicker view, int hour, int minute) {
time = String.valueOf(hour) + ":" + String.valueOf(minute);
}
public String getTime() {
return time;
}
爲什麼使用片段對話框。 DatePickerDialog已經足夠了,你應該在onClick of按鈕上創建並顯示它。 –
只關注日期字段,您是否確認了您在'onDateSet()'中獲得了您期望的值? – Cheticamp