自定義dialog中元件的獲取

2021-07-09 10:26:04 字數 791 閱讀 2709

問題描述:今天在做彈出對話方塊的功能時,想獲取對話方塊中元件的text並在主視窗顯示,結果執行以後報nullpointer

排查:經過對**的隔離,發現是findviewbyid(r.id.server_addr);返回是null。難道dialog沒有顯示麼?沒顯示怎麼會有輸入。。。那對話方塊都出來了,id也對,為什麼find會是null呢?通過debug發現,進入setpositivebutton的onclick以後,this是指向mainactivity,而不是dialog,而onclick傳入的第乙個引數指向了dialog,但是不能獲取元件。

解決:看findviewbyid,忽然想到,元件是在view中的,而dialog只是乙個容器,載入了該view,那麼獲取元件應該是從view中獲取,而這裡的view就是tablelayout serverconfig = (tablelayout)getlayoutinflater().inflate(r.layout.server_config, null);而如果要在onclick中使用該變數(serverconfig)還需要為其加上final關鍵字。修改後**如下,重新debug,成功獲得元件。

findviewbyid(r.id

.config_service).setonclicklistener(new view.onclicklistener()

}).setnegativebutton("取消", new dialoginte***ce.onclicklistener()

}).create()

.show();

}});

Android獲取dialog自定義布局中的控制項

最近寫了乙個自定義布局的dialog,執行效果如下 然後我想獲取到自定義布局中的edittext控制項,並得到其中的字串,但是使用send email edittext findviewbyid r.id.send email dialog et 並不能獲取到控制項物件,經測試發現send emai...

自定義自己的Dialog

設定鍵盤監聽事件 if mkeylistener null 獲取對話方塊布局 view layout inflater.inflate r.layout.alert dialog,viewgroup activity context findviewbyid r.id.parentpanel lay...

android中自定義dialog的使用方法簡介

在android的介面開發中,經常要用到一些自定義對話方塊的情況,比如採用dialog的方式實現彈出式選單等等,現在把自定義對話方塊的使用方法進行簡介,以備後用。第一步,自定義layout檔案。新建乙個layout的xml檔案,對你的自定義對話方塊進行頁面顯示設計。第二步,建立乙個類,繼承自dial...