搜尋

首頁  >  問答  >  主體

java - 使用AlertDialog.Builder点击确定需要进行一个网络操作,结果报错

使用AlertDialog.Builder点击确定需要进行一个网络操作,结果报错

StartActivity has leaked window com.android.internal.policy.PhoneWindow$DecorView{4288226 V.E...... R.....I. 0,0-1026,476} that was originally added here
                                                                        at android.view.ViewRootImpl.<init>(ViewRootImpl.java:368)
                                                                        at android.view.WindowManagerGlobal.addView(WindowManagerGlobal.java:299)
                                                                        at android.view.WindowManagerImpl.addView(WindowManagerImpl.java:85)
                                                                        
                                                                        上网查了,要把alert给dismiss,根本不行,AlertDialog.Builder本身没有dismiss方法,并且点击效果本身就是取消了窗口的显示,,,,这个要怎么做?
大家讲道理大家讲道理2785 天前812

全部回覆(7)我來回復

  • 阿神

    阿神2017-04-18 09:23:45

    AlertDialog.Builder 這個類別是根據配置來產生AlertDialog的。
    AlertDialog才可以顯示,才有dimiss方法。
    Builder產生結果是Builder,如果不呼叫create或show方法的話是沒有AlertDialog產生的。

    回覆
    0
  • 伊谢尔伦

    伊谢尔伦2017-04-18 09:23:45

    建議貼一下程式碼,這樣說不好懂!

    回覆
    0
  • 巴扎黑

    巴扎黑2017-04-18 09:23:45

    同上,描述有點模糊,不清楚你想說什麼

    回覆
    0
  • 高洛峰

    高洛峰2017-04-18 09:23:45

    窗體洩漏,應該是dialog依然持有Activity的Context,你直接關閉了Activity。貼一下具體程式碼吧

    回覆
    0
  • ringa_lee

    ringa_lee2017-04-18 09:23:45

    builder 只是建構類別的參數而已。
    呼叫builder的build()才會真的建構類別的實例。
    在你的案例下要宣告一個Dialog來接收,才有機會呼叫到dismiss()方法。

    回覆
    0
  • 怪我咯

    怪我咯2017-04-18 09:23:45

    你先得build.create()才是一個alertdialog,然後你才能使用alertdialog.show()和alertdialog.dismiss()

    回覆
    0
  • 黄舟

    黄舟2017-04-18 09:23:45

    你傳入的context 是activity的context,還是application的context 如果是application的context 就會抱類似的錯誤。需要給dialog一個依附的視窗才能顯示

    回覆
    0
  • 取消回覆