2014-06-26 37 views
0

當我放置一個片段,而不使用activity的dialogfragment我得到一個IllegalStateException。我的設計不是使用活動。任何人都可以在這方面幫助我嗎?片段IllegalStateException當放置在對話框片段

代碼片斷:

popUpFragment = this; 
popUpFragment.dismissPopUp += DismissPopUpDialog; 
dialog = new PopUpDialogFragment(popUpFragment, this.GetString(Resource.String.signin_btn_title), HeaderButton.Close, this.Resources.GetDimension(Resource.Dimension.Tablet_Popup_Width), this.Resources.GetDimension(Resource.Dimension.Tablet_Signin_Height), true); 
dialog.Show(this.Activity.SupportFragmentManager, "test dialog"); 

該上述代碼已被該片段的內部構造使用。我得到的例外是:

06-26 21:58:17.505: W/dalvikvm(4696): JNI WARNING: JNI method called with exception pending 
06-26 21:58:17.505: W/dalvikvm(4696):    in Lgrocery/droid/fragments/HomeScreenFragment;.n_onClick:(Landroid/view/View;)V (GetMethodID) 
06-26 21:58:17.505: W/dalvikvm(4696): Pending exception is: 
06-26 21:58:17.505: I/dalvikvm(4696): java.lang.IllegalStateException: Fragment SignInFragment{53aad3b8} not attached to Activity 
06-26 21:58:17.505: I/dalvikvm(4696): (raw stack trace not found) 
06-26 21:58:17.509: I/dalvikvm(4696): "main" prio=5 tid=1 NATIVE 
06-26 21:58:17.509: I/dalvikvm(4696): | group="main" sCount=0 dsCount=0 obj=0xa62e54b0 self=0xb7aea500 
06-26 21:58:17.509: I/dalvikvm(4696): | sysTid=4696 nice=0 sched=0/0 cgrp=[fopen-error:2] handle=-1216605120 
06-26 21:58:17.509: I/dalvikvm(4696): | schedstat=(3374948563 913984594 3593) utm=283 stm=54 core=0 
06-26 21:58:17.525: I/dalvikvm(4696): #00 pc 0008f4ad /system/lib/libdvm.so 
06-26 21:58:17.525: I/dalvikvm(4696): #01 pc 00073efa /system/lib/libdvm.so 
06-26 21:58:17.525: I/dalvikvm(4696): #02 pc 00074024 /system/lib/libdvm.so 
06-26 21:58:17.525: I/dalvikvm(4696): #03 pc 0003879a /system/lib/libdvm.so 
06-26 21:58:17.525: I/dalvikvm(4696): #04 pc 0003d788 /system/lib/libdvm.so 
06-26 21:58:17.525: I/dalvikvm(4696): #05 pc 00029d28 <unknown> 
06-26 21:58:17.525: I/dalvikvm(4696): at grocery.droid.fragments.HomeScreenFragment.n_onClick(Native Method) 
06-26 21:58:17.525: I/dalvikvm(4696): at grocery.droid.fragments.HomeScreenFragment.onClick(HomeScreenFragment.java:81) 
06-26 21:58:17.525: I/dalvikvm(4696): at android.view.View.performClick(View.java:4084) 
06-26 21:58:17.525: I/dalvikvm(4696): at android.view.View$PerformClick.run(View.java:16966) 
06-26 21:58:17.525: I/dalvikvm(4696): at android.os.Handler.handleCallback(Handler.java:615) 
06-26 21:58:17.525: I/dalvikvm(4696): at android.os.Handler.dispatchMessage(Handler.java:92) 
06-26 21:58:17.525: I/dalvikvm(4696): at android.os.Looper.loop(Looper.java:137) 

回答

0

片段和DialogFragment必須使用活動來實現有活動傳遞的信息一起向另一個片段,或者你可以使用一個AlertDialog.Builder代替。看看這裏:Dialogs