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