[問題](已解決) Fragment底下使用AlertDialog

看板AndroidDev作者 (EXSA)時間7年前 (2017/10/12 14:17), 7年前編輯推噓3(3013)
留言16則, 2人參與, 7年前最新討論串1/1
程式碼: https://images.plurk.com/2D5LfLDJh7yr5GgViUlt.jpg
我宣告了一個global的 AlertDialog,然後在一個JSON的try-catch底下去產生一個AlertDialog物件 如圖紅框所示,在生成物件時可以給他設定setNeutralButton 但是我需要在一些判斷條件底下去動態產生按鈕時會像黃框所示一樣變成紅字 而目前的處理方式是如綠框內使用setButton來暫時解決 但是我想請問黃框的狀況發生原因為何?並且我該如何用黃框的方式來達成我的目的? -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 220.133.229.31 ※ 文章網址: https://www.ptt.cc/bbs/AndroidDev/M.1507789075.A.31B.html

10/12 14:50, 7年前 , 1F
AlertDialog.Builder才有setNeutralButton
10/12 14:50, 1F

10/12 14:50, 7年前 , 2F
AlertDialog沒有,就不同type啊
10/12 14:50, 2F
https://images.plurk.com/48wSN3yHKe5frATniUlt.jpg
我試著宣告成AlertDialog.Builder結果像這樣,用Alt+Enter解決會強制轉為AlertDialog

10/12 14:51, 7年前 , 3F
setButton有個3個參數的版本可以指定哪個button
10/12 14:51, 3F

10/12 14:52, 7年前 , 4F
你用到的是舊的方法(setButton、setButton2、setButton3)
10/12 14:52, 4F

10/12 15:11, 7年前 , 5F
你是想問為何已經new過AlertDialog.Builder卻不能用嗎?
10/12 15:11, 5F
是的!雖然上面有提到型別宣告有誤,但是修正後同樣的程式碼在Activity底下是正常的

10/12 15:24, 7年前 , 6F
我是把他分開寫
10/12 15:24, 6F

10/12 15:41, 7年前 , 7F

10/12 15:42, 7年前 , 8F
其實就真的是type的問題而已吧
10/12 15:42, 8F
我將推文中圖片程式碼中的.create()刪去後就解決了我所有的問題了,不過還是不太懂這個create影響的問題所在 現在的code https://images.plurk.com/7vWXqlf6ElkwWtKLiUlt.jpg
※ 編輯: gn00386614 (220.133.229.31), 10/12/2017 15:56:35

10/12 15:59, 7年前 , 9F
AlertDialog.Builder是用來建立AlertDialog的class
10/12 15:59, 9F

10/12 15:59, 7年前 , 10F
create這個方法就是把Builder轉成最後要用的AlertDialog
10/12 15:59, 10F

10/12 15:59, 7年前 , 11F
呼叫create前後是不同的type
10/12 15:59, 11F

10/12 16:00, 7年前 , 12F
另外AlertDialog.Builder的show是相當於create之後馬上呼叫
10/12 16:00, 12F

10/12 16:02, 7年前 , 13F
新的AlertDialog的show
10/12 16:02, 13F

10/12 16:05, 7年前 , 14F
除了create和show(還有getContext)以外Builder的方法都是回
10/12 16:05, 14F

10/12 16:07, 7年前 , 15F
傳原本的builder方便連續呼叫
10/12 16:07, 15F

10/12 16:08, 7年前 , 16F
看不懂create前後差在哪的話可能要加強一下Java基礎..
10/12 16:08, 16F
原來如此,感謝說明 Java的基礎這方面自己真的比較弱,畢竟目前實際開發還不到半年的經驗都還在邊學邊摸的階段 ※ 編輯: gn00386614 (220.133.229.31), 10/12/2017 16:17:05
文章代碼(AID): #1PtmaJCR (AndroidDev)
文章代碼(AID): #1PtmaJCR (AndroidDev)