作者gn00386614 (EXSA)
看板AndroidDev
標題[問題] Fragment底下使用AlertDialog
時間Thu Oct 12 14:17:51 2017
程式碼:
https://images.plurk.com/2D5LfLDJh7yr5GgViUlt.jpg
我宣告了一個global的 AlertDialog,然後在一個JSON的try-catch底下去產生一個AlertDialog物件
如圖紅框所示,在生成物件時可以給他設定setNeutralButton
但是我需要在一些判斷條件底下去動態產生按鈕時會像黃框所示一樣變成紅字
而目前的處理方式是如綠框內使用setButton來暫時解決
但是我想請問黃框的狀況發生原因為何?並且我該如何用黃框的方式來達成我的目的?
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 220.133.229.31
※ 文章網址: https://webptt.com/m.aspx?n=bbs/AndroidDev/M.1507789075.A.31B.html
1F:→ ssccg: AlertDialog.Builder才有setNeutralButton 10/12 14:50
2F:→ ssccg: AlertDialog沒有,就不同type啊 10/12 14:50
https://images.plurk.com/48wSN3yHKe5frATniUlt.jpg
我試著宣告成AlertDialog.Builder結果像這樣,用Alt+Enter解決會強制轉為AlertDialog
3F:→ ssccg: setButton有個3個參數的版本可以指定哪個button 10/12 14:51
4F:→ ssccg: 你用到的是舊的方法(setButton、setButton2、setButton3) 10/12 14:52
5F:推 taco2548: 你是想問為何已經new過AlertDialog.Builder卻不能用嗎? 10/12 15:11
是的!雖然上面有提到型別宣告有誤,但是修正後同樣的程式碼在Activity底下是正常的
6F:推 taco2548: 我是把他分開寫 10/12 15:24
8F:→ taco2548: 其實就真的是type的問題而已吧 10/12 15:42
我將推文中圖片程式碼中的.create()刪去後就解決了我所有的問題了,不過還是不太懂這個create影響的問題所在
現在的code
https://images.plurk.com/7vWXqlf6ElkwWtKLiUlt.jpg
※ 編輯: gn00386614 (220.133.229.31), 10/12/2017 15:56:35
9F:→ ssccg: AlertDialog.Builder是用來建立AlertDialog的class 10/12 15:59
10F:→ ssccg: create這個方法就是把Builder轉成最後要用的AlertDialog 10/12 15:59
11F:→ ssccg: 呼叫create前後是不同的type 10/12 15:59
12F:→ ssccg: 另外AlertDialog.Builder的show是相當於create之後馬上呼叫 10/12 16:00
13F:→ ssccg: 新的AlertDialog的show 10/12 16:02
14F:→ ssccg: 除了create和show(還有getContext)以外Builder的方法都是回 10/12 16:05
15F:→ ssccg: 傳原本的builder方便連續呼叫 10/12 16:07
16F:→ ssccg: 看不懂create前後差在哪的話可能要加強一下Java基礎.. 10/12 16:08
原來如此,感謝說明
Java的基礎這方面自己真的比較弱,畢竟目前實際開發還不到半年的經驗都還在邊學邊摸的階段
※ 編輯: gn00386614 (220.133.229.31), 10/12/2017 16:17:05