2016-12-18 18 views
-2

フラグメントの日付ピッカーを使用しようとしていますが、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); 

    } 


} 

}

これは、私はあなたがonCreateViewTextViewを初期化し、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) 
+3

、以下のコードを参照してください?コンパイラエラー、実行時の例外、知識の不足?あなたの問題を教えてください。私たちにコードをダンプするのではなく、 – GhostCat

+0

知識の不足 –

答えて

0

を得たエラーです。あなたはそれを使用するのはなぜカント

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())); 
} 
+0

ありがとうK Neeraj Lalあなたは私の救世主です –

+0

Neerajボタンをクリックするとエラーが発生します。私はアンドロイドを初期化しています:xmlファイルのonClick = "datePicker" –

+0

エラーは何ですか? –

0
@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; 
} 
+0

ヒント:コードを削除しないでください。他の人があなたの答えをアップアップすることを期待するならば、少なくとも少しの説明をしてください。 – GhostCat

+0

ok GhostCat私はそれを念頭に置いておきます –

関連する問題