こんにちは、それぞれのクラスから日付と時刻の値を取得し、それらをフラグメントのテキストビューに設定しようとしています。 アイブ氏は、変数に設定し、メソッドから呼び出すしようとしたが、ここでフラグメント内の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で作成して表示する必要があります。 –
日付フィールドだけに注目すると、あなたは 'onDateSet()'で期待する値を得ていることを確認しましたか? – Cheticamp