Android findViewById不适用于日期选择器的片段

Android findViewById不适用于日期选择器的片段,android,datepicker,Android,Datepicker,我试图在片段中使用日期选择器,但在findViewId中显示错误。我已将视图用于微调器,但无法将其用于设置日期功能。有人能帮我吗?因为我需要为用户设置from date和todate的日期。我是安道尔工作室的新手。我有Java的知识,但我对安卓完全是新手 public class Statement extends Fragment implements DatePickerDialog.OnDateSetListener{ @Override public View onCreateVi

我试图在片段中使用日期选择器,但在findViewId中显示错误。我已将视图用于微调器,但无法将其用于设置日期功能。有人能帮我吗?因为我需要为用户设置from date和todate的日期。我是安道尔工作室的新手。我有Java的知识,但我对安卓完全是新手

public class Statement extends Fragment implements DatePickerDialog.OnDateSetListener{



@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
                         Bundle savedInstanceState) {
    // Inflate the layout for this fragment
    //return inflater.inflate(R.layout.fragment_statement, container, false);
    View v = inflater.inflate(R.layout.fragment_statement, container, false);
    String [] values =
            {"Time at Residence","Under 6 months","6-12 months","1-2 years","2-4 years","4-8 years","8-15 years","Over 15 years",};
    Spinner spinner = (Spinner) v.findViewById(R.id.spinner);
    ArrayAdapter<String> adapter = new ArrayAdapter<String>(this.getActivity(), android.R.layout.simple_spinner_item, values);
    adapter.setDropDownViewResource(android.R.layout.simple_dropdown_item_1line);
    spinner.setAdapter(adapter);
    return v;
}
public void datePicker(View view){
    DatePickerFragment fragment = new DatePickerFragment();
    fragment.show(getActivity().getFragmentManager(),"date");
}

public void setDate(final Calendar calendar){
    final DateFormat dateFormat = DateFormat.getDateInstance(DateFormat.MEDIUM);
    ((TextView) findViewById(R.id.showDate).setText(dateFormat.format(calendar.getTime())));
}
@Override
public void onDateSet(DatePicker view, int year, int monthOfYear, int dayOfMonth) {
    Calendar cal = new GregorianCalendar(year,monthOfYear,dayOfMonth);
    setDate(cal);
}

public static class DatePickerFragment extends DialogFragment {
    @Override
    public Dialog onCreateDialog (Bundle savedInstanceState){
        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);

        return  new DatePickerDialog(getActivity(),(DatePickerDialog.OnDateSetListener)getActivity(),year,month,day);

    }


}

您必须在onCreateView中初始化TextView,并将该变量用于setText。参见下面的代码

TextView output;

@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
    // Inflate the layout for this fragment
    View v = inflater.inflate(R.layout.fragment_statement, container, false);
    ...

    Spinner spinner = (Spinner) v.findViewById(R.id.spinner);
    output = (TextView) v.findViewById(R.id.showDate);

    ...
    return v;
}

public void setDate(final Calendar calendar){
    final DateFormat dateFormat = DateFormat.getDateInstance(DateFormat.MEDIUM);
    output.setText(dateFormat.format(calendar.getTime()));
}

你为什么不能用它?编译器错误、运行时异常、缺乏知识?告诉我们你的问题;没有知识谢谢K Neeraj Lal你是我的救世主Neeraj我点击按钮时出错了。我已经在xml文件上初始化了android:onClick=datePicker错误是什么?提示:不要删除一些代码;如果你希望别人对你的答案投赞成票,至少要给你一点解释。好的,幽灵猫,我会记住的
TextView output;

@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
    // Inflate the layout for this fragment
    View v = inflater.inflate(R.layout.fragment_statement, container, false);
    ...

    Spinner spinner = (Spinner) v.findViewById(R.id.spinner);
    output = (TextView) v.findViewById(R.id.showDate);

    ...
    return v;
}

public void setDate(final Calendar calendar){
    final DateFormat dateFormat = DateFormat.getDateInstance(DateFormat.MEDIUM);
    output.setText(dateFormat.format(calendar.getTime()));
}
 @Override
 public View onCreateView(LayoutInflater inflater, ViewGroup container,
                 Bundle savedInstanceState) {
    // Inflate the layout for this fragment
    View root = inflater.inflate(R.layout.fragment_flight, container, false);
    depDate = (TextView) root.findViewById(R.id.book_f_dep);
    depDate.setOnClickListener(new View.OnClickListener() {

    @Override
    public void onClick(View v) {
    DialogFragment newFragment = new SelectDateFragment();
    newFragment.show(getFragmentManager(), "DatePicker");
 }
    });
    return root;
 }