2012-10-10 20 views
0
public class ReviewActivity extends Activity { 
    public void onCreate(Bundle savedInstanceState) 
    { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.reviewfrag_layout); 
     mInflater = (LayoutInflater) ReviewActivity.this.getSystemService( 
        LAYOUT_INFLATER_SERVICE); 
      ContextThemeWrapper mTheme = new ContextThemeWrapper(this, 
        R.style.customDialog); 

      mView = mInflater.inflate(R.layout.custom_dialog, null); 
      // mDialog = new Dialog(this,0); // context, theme 

      mDialog = new Dialog(mTheme); 
      mDialog.requestWindowFeature(Window.FEATURE_NO_TITLE); 
      mDialog.setContentView(this.mView); 

       //if i comment below line code runs otherwise give exception 
      mDialog.show(); 
     } 
} 

風格:

<style name="customDialog"> 
    <item name="android:windowBackground">@android:color/transparent</item> 
    <item name="android:windowFrame">@null</item> 
    <item name="android:windowNoTitle">true</item> 
    <item name="android:windowIsFloating">false</item> 
    <item name="android:windowIsTranslucent">false</item> 
    <item name="android:windowContentOverlay">@android:color/transparent</item> 
    <item name="android:backgroundDimEnabled">false</item> 

日誌消息: 10-10 13:20:01.184:E/AndroidRuntime(1417):致命異常:主 10-10 13:20:01.184:E/AndroidRuntime(1417):android.view.WindowManager $ BadTokenException:無法添加窗口 - 令牌[email protected]無效;你的活動正在運行? 10-10 13:20:01.184:E/AndroidRuntime(1417):在android.view.ViewRootImpl.setView(ViewRootImpl.java:585) 10-10 13:20:01.184:E/AndroidRuntime(1417):在android.view.WindowManagerImpl.addView(WindowManagerImpl.java:326) 10-10 13:20:01.184:E/AndroidRuntime(1417):在android.view.WindowManagerImpl.addView(WindowManagerImpl.java:224) 10-10 13:20:01.184:E/AndroidRuntime(1417):在android.view.WindowManagerImpl $ CompatModeWrapper.addView(WindowManagerImpl.java:149) 10-10 13:20:01.184:E/AndroidRuntime(1417):在android。 view.Window $ LocalWindowManager.addView(Window.java:547) 10-10 13:20:01.184:E/AndroidRuntime(1417):在android.app.Dialog.show(Dialog.java:277) 10-10 13:20:01.184:E/AndroidRuntime(1417):at com.mds.restau.activity.ReviewActivity $ 1.onClick(ReviewActi vity.java:74) 10-10 13:20:01.184:E/AndroidRuntime(1417):at android.view.View.performClick(View.java:4084) 10-10 13:20:01.184:E/AndroidRuntime(1417):在android.view.View $ PerformClick.run(View.java:16966) 10-10 13:20:01.184:E/AndroidRuntime(1417):at android.os.Handler.handleCallback(Handler。的java:615) 10-10 13:20:01.184:E/AndroidRuntime(1417):在android.os.Handler.dispatchMessage(Handler.java:92) 10-10 13:20:01.184:E/AndroidRuntime( 1417):在android.os.Looper.loop(Looper.java:137) 10-10 13:20:01.184:E/AndroidRuntime(1417):at android.app.ActivityThread.main(ActivityThread.java:4745) 10-10 13:20:01.184:E/AndroidRuntime(1417):在java.lang.reflect.Method.invokeNative(本機方法) 10-10 13:20:01.184:E/AndroidRuntime(141 7):在java.lang.reflect.Method.invoke(Method.java:511) 10-10 13:20:01.184:E/AndroidRuntime(1417):at com.android.internal.os.ZygoteInit $ MethodAndArgsCaller。運行(ZygoteInit.java:786) 10-10 13:20:01.184:E/AndroidRuntime(1417):在com.android.internal.os.ZygoteInit.main(ZygoteInit.java:553) 10-10 13: 20:01.184:E/AndroidRuntime(1417):在dalvik.system.NativeStart.main(本機方法)

回答

0

它是上下文的問題。如果您從活動組中打開此活動,則不使用setContentView(R.layout.xxxx),請使用以下內容:

查看viewToLoad = LayoutInflater.from(getParent())。inflate(R.layout.XXXX,null ); this.setContentView(viewToLoad);

希望它的工作原理

相關問題