作者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/cn.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