フラグメントの日付ピッカーを使用しようとしていますが、findViewIdにエラーが表示されます。私はスピナーのためのビューを使用しているが、私は設定された日付機能のためにそれを使用することができません。私は日付から日付を設定し、ユーザーからの日付を設定する必要があるので、誰でもこれで私を助けることができます。私はAndoridスタジオが初めてです。私はJavaの知識を持っていますが、私は全く新しいAndroidです。findViewByIdが日付ピッカーのフラグメントで動作しません
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
にそのvaribleを使用する必要が
12-19 10:17:16.906 1311-1311/com.test.datepicker E/AndroidRuntime: FATAL EXCEPTION: main
Process: com.test.datepicker, PID: 1311
java.lang.ClassCastException: com.test.datepicker.NavigationActivity cannot be cast to android.app.DatePickerDialog$OnDateSetListener
at com.test.datepicker.Statement$DatePickerFragment.onCreateDialog(Statement.java:80)
at android.app.DialogFragment.getLayoutInflater(DialogFragment.java:398)
at android.app.FragmentManagerImpl.moveToState(FragmentManager.java:904)
at android.app.FragmentManagerImpl.moveToState(FragmentManager.java:1082)
at android.app.BackStackRecord.run(BackStackRecord.java:833)
at android.app.FragmentManagerImpl.execPendingActions(FragmentManager.java:1467)
at android.app.FragmentManagerImpl$1.run(FragmentManager.java:452)
at android.os.Handler.handleCallback(Handler.java:739)
at android.os.Handler.dispatchMessage(Handler.java:95)
at android.os.Looper.loop(Looper.java:145)
at android.app.ActivityThread.main(ActivityThread.java:5942)
at java.lang.reflect.Method.invoke(Native Method)
at java.lang.reflect.Method.invoke(Method.java:372)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1400)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1195)
、以下のコードを参照してください?コンパイラエラー、実行時の例外、知識の不足?あなたの問題を教えてください。私たちにコードをダンプするのではなく、 – GhostCat
知識の不足 –