2011-06-28 16 views
0

私は3つの日付ピッカーで活動しています。問題は、私のフォームに希望の日付の値を設定し、バックをクリックするとDatepickerダイアログが再び現れることです。キャンセルボタンをクリックしてもう一度クリックすると、FCができました。 Logcatから :Android DatePickerの問題と戻るボタン

06-28 09:28:57.531: ERROR/AndroidRuntime(2029): java.lang.IllegalArgumentException:  Activity#onCreateDialog did not create a dialog for id 2 
06-28 09:28:57.531: ERROR/AndroidRuntime(2029):  at android.app.Activity.createDialog(Activity.java:871) 
06-28 09:28:57.531: ERROR/AndroidRuntime(2029):  at android.app.Activity.showDialog(Activity.java:2483) 
06-28 09:28:57.531: ERROR/AndroidRuntime(2029):  at com.octanewave.platform.android.util.DialogManager.showDialogInfo(DialogManager.java:63) 
06-28 09:28:57.531: ERROR/AndroidRuntime(2029):  at com.octanewave.platform.android.util.ShowConfirmDialogRunnable.run(ShowConfirmDialogRunnable.java:53) 
06-28 09:28:57.531: ERROR/AndroidRuntime(2029):  at com.octanewave.platform.android.util.DelegateRunnable.invokePostAndWait(DelegateRunnable.java:59) 
06-28 09:28:57.531: ERROR/AndroidRuntime(2029):  at com.octanewave.platform.android.ui.ScreenManager.invokePostAndWait(ScreenManager.java:556) 
06-28 09:28:57.531: ERROR/AndroidRuntime(2029):  at com.octanewave.platform.android.ui.ScreenManager.showConfirmDialog(ScreenManager.java:720) 
06-28 09:28:57.531: ERROR/AndroidRuntime(2029):  at com.octanewave.platform.android.ui.ScreenManager.exitScreenWithCheck(ScreenManager.java:1046) 
06-28 09:28:57.531: ERROR/AndroidRuntime(2029):  at mcrm.android.ui.NewOpptyScreenActivityHelper.onClose(NewOpptyScreenActivityHelper.java:29) 
06-28 09:28:57.531: ERROR/AndroidRuntime(2029):  at mcrm.android.ui.NewOpptyScreenActivity.onKeyDown(NewOpptyScreenActivity.java:497) 
06-28 09:28:57.531: ERROR/AndroidRuntime(2029):  at android.view.KeyEvent.dispatch(KeyEvent.java:1037) 
06-28 09:28:57.531: ERROR/AndroidRuntime(2029):  at android.app.Activity.dispatchKeyEvent(Activity.java:2043) 
06-28 09:28:57.531: ERROR/AndroidRuntime(2029):  at com.android.internal.policy.impl.PhoneWindow$DecorView.dispatchKeyEvent(PhoneWindow.java:1631) 
06-28 09:28:57.531: ERROR/AndroidRuntime(2029):  at android.view.ViewRoot.deliverKeyEventToViewHierarchy(ViewRoot.java:2368) 
06-28 09:28:57.531: ERROR/AndroidRuntime(2029):  at android.view.ViewRoot.handleFinishedEvent(ViewRoot.java:2338) 
06-28 09:28:57.531: ERROR/AndroidRuntime(2029):  at android.view.ViewRoot.handleMessage(ViewRoot.java:1641) 
06-28 09:28:57.531: ERROR/AndroidRuntime(2029):  at android.os.Handler.dispatchMessage(Handler.java:99) 
06-28 09:28:57.531: ERROR/AndroidRuntime(2029):  at android.os.Looper.loop(Looper.java:123) 
06-28 09:28:57.531: ERROR/AndroidRuntime(2029):  at com.octanewave.platform.android.util.ShowConfirmDialogRunnable.run(ShowConfirmDialogRunnable.java:56) 
06-28 09:28:57.531: ERROR/AndroidRuntime(2029):  at com.octanewave.platform.android.util.DelegateRunnable.invokePostAndWait(DelegateRunnable.java:59) 
06-28 09:28:57.531: ERROR/AndroidRuntime(2029):  at com.octanewave.platform.android.ui.ScreenManager.invokePostAndWait(ScreenManager.java:556) 
06-28 09:28:57.531: ERROR/AndroidRuntime(2029):  at com.octanewave.platform.android.ui.ScreenManager.showConfirmDialog(ScreenManager.java:720) 
06-28 09:28:57.531: ERROR/AndroidRuntime(2029):  at com.octanewave.platform.android.ui.ScreenManager.exitScreenWithCheck(ScreenManager.java:1046) 
06-28 09:28:57.531: ERROR/AndroidRuntime(2029):  at mcrm.android.ui.NewOpptyScreenActivityHelper.onClose(NewOpptyScreenActivityHelper.java:29) 
06-28 09:28:57.531: ERROR/AndroidRuntime(2029):  at mcrm.android.ui.NewOpptyScreenActivity.onKeyDown(NewOpptyScreenActivity.java:497) 
06-28 09:28:57.531: ERROR/AndroidRuntime(2029):  at android.view.KeyEvent.dispatch(KeyEvent.java:1037) 
06-28 09:28:57.531: ERROR/AndroidRuntime(2029):  at android.app.Activity.dispatchKeyEvent(Activity.java:2043) 
06-28 09:28:57.531: ERROR/AndroidRuntime(2029):  at com.android.internal.policy.impl.PhoneWindow$DecorView.dispatchKeyEvent(PhoneWindow.java:1631) 
06-28 09:28:57.531: ERROR/AndroidRuntime(2029):  at android.view.ViewRoot.deliverKeyEventToViewHierarchy(ViewRoot.java:2368) 
06-28 09:28:57.531: ERROR/AndroidRuntime(2029):  at android.view.ViewRoot.handleFinishedEvent(ViewRoot.java:2338) 
06-28 09:28:57.531: ERROR/AndroidRuntime(2029):  at android.view.ViewRoot.handleMessage(ViewRoot.java:1641) 
06-28 09:28:57.531: ERROR/AndroidRuntime(2029):  at android.os.Handler.dispatchMessage(Handler.java:99) 
06-28 09:28:57.531: ERROR/AndroidRuntime(2029):  at android.os.Looper.loop(Looper.java:123) 
06-28 09:28:57.531: ERROR/AndroidRuntime(2029):  at com.octanewave.platform.android.util.ShowAlertDialogRunnable.run(ShowAlertDialogRunnable.java:37) 
06-28 09:28:57.531: ERROR/AndroidRuntime(2029):  at com.octanewave.platform.android.util.DelegateRunnable.run(DelegateRunnable.java:19) 
06-28 09:28:57.531: ERROR/AndroidRuntime(2029):  at android.os.Handler.handleCallback(Handler.java:587) 
06-28 09:28:57.531: ERROR/AndroidRuntime(2029):  at android.os.Handler.dispatchMessage(Handler.java:92) 
06-28 09:28:57.531: ERROR/AndroidRuntime(2029):  at android.os.Looper.loop(Looper.java:123) 
06-28 09:28:57.531: ERROR/AndroidRuntime(2029):  at android.app.ActivityThread.main(ActivityThread.java:4363) 
06-28 09:28:57.531: ERROR/AndroidRuntime(2029):  at java.lang.reflect.Method.invokeNative(Native Method) 
06-28 09:28:57.531: ERROR/AndroidRuntime(2029):  at java.lang.reflect.Method.invoke(Method.java:521) 
06-28 09:28:57.531: ERROR/AndroidRuntime(2029):  at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:860) 
06-28 09:28:57.531: ERROR/AndroidRuntime(2029):  at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:618) 
06-28 09:28:57.531: ERROR/AndroidRuntime(2029):  at dalvik.system.NativeStart.main(Native Method) 

そしてここでのコードの一部です:

mPickDate = (ImageView) findViewById(R.id.pickDate); 
    mPickDate.setOnClickListener(new View.OnClickListener() { 
     public void onClick(View v) { 
     showDialog(DATE_DIALOG_ID); 
     } 
    }); 

@Override 
protected Dialog onCreateDialog(int id) { 
switch (id) { 
case DATE_DIALOG_ID: 
    return new DatePickerDialog(this, 
       mDateSetListener, 
       mYear, mMonth, mDay); 
case DATE_DIALOG_ID_RETURN: 
    return new DatePickerDialog(this, 
     mDateSetListenerreturn, 
       mYear, mMonth, mDay);  
} 
return null; 
} 

// updates the date in the TextView 
    private void updateDisplay(TextView mDateDisplay) { 
    mDateDisplay.setText(
     new StringBuilder() 
       // Month is 0 based so add 1 
       .append(mDay).append("-") 
       .append(mMonth + 1).append("-") 
       .append(mYear).append("") 


       ); 
} 
private DatePickerDialog.OnDateSetListener mDateSetListener = 
    new DatePickerDialog.OnDateSetListener() { 

     public void onDateSet(DatePicker view, int year, 
           int monthOfYear, int dayOfMonth) { 
      mYear = year; 
      mMonth = monthOfYear; 
      mDay = dayOfMonth; 
      updateDisplay(mDateDisplay); 
     } 
    }; 

...

私はonCreateDialog(AT 'のgetParent()')と 'この' を変更何も起こらなかった 何か提案がありますか?

+0

完全なスタックトレースを含めてください。 –

答えて

1

お客様のエラーは、DialogManager.javaの63行目にあります。コードを見ることなく、私はそれ以上具体的にすることはできませんが、showDialog()へのあなたの議論の1つに問題があるように見えます。

hereのようにonCreateDialog()メソッドをオーバーライドしました。もしそうなら、id = 2のときにダイアログボックスを作成しますか?

+0

はい私は持っています。さらに、戻るボタンをクリックすると、たとえば数字5のダイアログを作成しようとします(ここではダイアログ0,1,2しかない)。 – Antonis