web-dev-qa-db-ja.com

フラグメントでのDatePickerの実装

私はFragmentのインスタンスであり、DialogFragmentのインスタンスではないFragmentを使用しています。

検索結果のほとんどをグーグルで検索して、DialogFragmentを使用してDatePickerを作成する方法を示しました。

fragmentとDialogFragmentの型が一致しないため、私の場合は機能しません

どんな例やアイデアも役立つでしょう

これはフラグメントですJavaコード

        public class CreateReportFragment extends Fragment {

        public CreateReportFragment(){}

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

               rootView = inflater.inflate(R.layout.activity_create_report, container, false);
               initViews();
               return rootView;
        }

        private void initViews() 
       {

         final Calendar c = Calendar.getInstance();
             year  = c.get(Calendar.YEAR);
             month = c.get(Calendar.MONTH);
             day   = c.get(Calendar.DAY_OF_MONTH);

             editTextDate.setText(new StringBuilder()
             // Month is 0 based, just add 1
             .append(year)
             .append("-")
                    .append(month + 1)
                     .append("-").append(day));

        buttonDate = (Button)rootView.findViewById(R.id.buttonDate);
        }

DatePickerFragmentに実装する方法は?

11
AndroidNewbie

DialogFragment

私が正しいと思っているなら、ボタンをクリックしてDatePickerを表示したい

http://developer.Android.com/guide/topics/ui/controls/pickers.html

ボタンをクリックして

DialogFragment picker = new DatePickerFragment();
picker.show(getFragmentManager(), "datePicker");

DatePickerFragment.Java

public class DatePickerFragment extends DialogFragment
implements DatePickerDialog.OnDateSetListener {


@Override
public Dialog onCreateDialog(Bundle savedInstanceState) {
// Use the current date as the default date in the picker
final Calendar c = Calendar.getInstance();
int year = c.get(Calendar.YEAR);
int month = c.get(Calendar.MONTH);
int day = c.get(Calendar.DAY_OF_MONTH); 

// Create a new instance of DatePickerDialog and return it
return new DatePickerDialog(getActivity(), this, year, month, day);
}

@Override
public void onDateSet(DatePicker view, int year, int month, int day) {
Calendar c = Calendar.getInstance();
c.set(year, month, day);

SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
String formattedDate = sdf.format(c.getTime());    
}
}
33
Raghunandan

DatePickerをフラグメントに実装する方法は?

TextViewFragmentを「実装」するのと同じ方法:onCreateView()Viewを返すか、またはDatePickerを含む。たとえば、DatePickerウィジェットを含むレイアウトファイルがあり、onCreateView()でそのレイアウトを膨張させることができます。

5
CommonsWare

。 。 。 FragmentとDialogFragmentの型が一致しないため、私の場合は機能しません

DialogFragment IS-A FragmentこれはFragmentを拡張するためです。したがって、DialogFragmentはFragmentを使用する場所ならどこでも使用できます。