Dialog 的cancel 和dismiss 方法
Java程式碼
public void cancel() {
if (mCancelMessage != null) {
// Obtain a new message so this dialog can be re-used
Message.obtain(mCancelMessage).sendToTarget();
}
dismiss();
}
看明白了吧! 在cancel方法中呼叫了dismiss方法。 但是現在還有一個問題就是:mCancelMessage是什麼?
private Message mCancelMessage; // 這是原始碼中的宣告
然後再來看原始碼:
Java程式碼
public void setOnCancelListener(final OnCancelListener listener) {
if (listener != null) {
mCancelMessage = mListenersHandler.obtainMessage(CANCEL, listener);
} else {
mCancelMessage = null;
}
}
public void setCancelMessage(final Message msg) {
mCancelMessage = msg;
}
現在問題清楚了,就是如果你在建立AlertDialog的時候呼叫了setOnCancelListener 這個mCancelMessage變數有作用,否則dismiss和cancel等同。
相關推薦
Dialog 的cancel 和dismiss 方法
然後在Dialog類中找到了dismiss和cancel方法的實現。重要看dismiss的原始碼: Java程式碼 public void cancel() { if (mCancelMessage != null) { // Obtain a
Dialog中cancel和dismiss的區別總結
Dialog中cancel和dismiss的區別: AlertDialog繼承了Dialog,下面就以AlertDialog為例: 在cancle()方法中呼叫了dismiss()方法: publicvoid cancel() { if (mCance
Android開發——diglog cancel與dismiss方法區別
get() 方法 null ref 變量 width align eight ora AlertDialog dismiss 和 cancel方法的區別 AlertDialog使用很方便,但是有一個問題就是:dismiss方法和cancel方法
Jquery EasyUI Dialog close和destroy方法
在使用JQuery EasyUI做專案的時候,經常需要使用Dialog實現彈出框效果,但是在“檢視日常活動連結”的時候,有兩個模組呼叫的是同一個Dialog頁面,這個時候就出現頁面混亂情況,要麼就是Dialog內容無法開啟,其實這是Dialog的close和
ProgressDialog的hide()和dismiss()方法
在使用ProgressDialog作為網路載入資料的請求過程中,當資料載入完成,筆者很自然的將ProgressDialog呼叫了hide()方法,在當前activity退出時,遇到問題了android.view.WindowLeaked: Activity co
Activiy或者Fragment 銷燬時,Dialog 的正確Dismiss方式和測試方法
場景:Activity或者Fragment 中彈出一個 Dialog,幾秒後會 dismiss。平時測試沒遇到崩潰,但是崩潰平臺卻捕捉到如下錯誤java.lang.IllegalArgumentExc
(轉)Android 開發 對話方塊Dialog dismiss和hide方法的區別
原地址:https://www.pocketdigi.com/20120815/900.html dismiss和hide方法都可以隱藏對話方塊,在需要的時候也可以用show方法呼叫顯示。但是,這兩者是有區別的。 dismiss方法會釋放對話方塊所佔的資源,而hide
jQuery EasyUI中window/dialog 視窗摺疊和展開方法(顯示)
在jQuery的EasyUI中新視窗或訊息框是通過class="easyui-window"和class="easyui-dialog"定義,並可以通過其collapsible、minimizable、maximizable、closable、closed分別控
ProgressDialog的dismiss方法與cancel方法的區別
Dismiss this dialog, removing it from the screen. This method can be invoked safely from any thread. Note that you should not override this method to do c
Dialog.dismiss()方法無效的解決方法
在最近的專案中使用WebView載入網頁,開始時show載入框,結束時dismiss載入框,但是載入框不消失: private Dialog dialog; web.setWebViewCli
web測試中的測試點和測試方法總結
動態 小數 圖片尺寸 提示信息 方便 margin style 容錯性 字符型 測試是一種思維,包括情感思維和智力思維,情感思維主要體現在一句俗語:思想決定行動上(要懷疑一切),智力思維主要體現在測試用例的設計上。具有了這樣的思想,就會找出更多的bug。 一、輸入框
函數中的私有變量和特權方法
getc 單例 隱藏數據 需要 接口 返回對象 div 外部 his 定義 【1】【私有變量】 任何在函數中定義的變量,都可以認為是私有變量,因為不能在函數外部訪問這些變量。私有變量包括函數的參數、局部變量和在函數內部定義的其他函數 【2】【特權方法】 如果在函
[C#學習筆記之異步編程模式2]BeginInvoke和EndInvoke方法 (轉載)
cti otf 函數返回 編程模式 catch 數值 gin 單線程 blog 為什麽要進行異步回調?眾所周知,普通方法運行,是單線程的,如果中途有大型操作(如:讀取大文件,大批量操作數據庫,網絡傳輸等),都會導致方法阻塞,表現在界面上就是,程序卡或者死掉,界面元素不動了,
jquery中prop()方法和attr()方法的區別淺析
clas ttr over dex idt pro query selected accesskey jquery1.6中新加了一個方法prop(),一直沒用過它,官方解釋只有一句話:獲取在匹配的元素集中的第一個元素的屬性值。 大家都知道有的瀏覽器只要寫disabled,c
scroll()和scrollTop()方法——實現電商網站中的電梯導航
窗口 css樣式 ram 每一個 最新 top index hid none 要想實現電商網站的電梯導航效果,首先需要了解以下知識點: jquery 事件 - scroll() 方法 對元素滾動的次數進行計數,當用戶滾動指定的元素時,會發生 scroll 事件。scroll
【設計模式】簡單工廠模式和工廠方法模式
產生 for plm nbsp osc rbm play stp mage > 簡單工廠模式 顧名思義,此模式的設計結構是簡單的,核心是生產對象。 一般來說,運用工廠模式生產的對象應該是構建對象的過程比較復雜的,獲取構建對象的過程在日後可能發生變更的。 簡單工廠
小胖說事28------iOS中extern,static和const差別和使用方法
方法 string 文件 only 聲明 sans nbsp ring const 通俗的講: extern字段使用的時候,聲明的變量為全局變量,都能夠調用,也有這樣一種比較狹義的說法:extern能夠擴展一個類中的變量到還有一個類中;
python基礎2-靜態方法和類方法
變量 img 靜態 訪問 func title 改變 參數 code 1. 類方法 是類對象所擁有的方法,需要用修飾器@classmethod來標識其為類方法,對於類方法,第一個參數必須是類對象,一般以cls作為第一個參數(當然可以用其他名稱的變量作為其第一個參數,但是大部
forEach和map和for方法的區別
turn 而不是 ber num 遍歷數組 風格 cnblogs ron () 那麽接下來,我繼續做分析,為什麽更推薦用.map(),而不是.forEach()? 首先,.map()要比.forEach()執行速度更快。雖然我也說過執行速度不是我們需要考慮的主要因素,但是他
為什麽使用 Arrays.asList()得到的集合,使用remove( )和 add( )方法會拋出unsupportedoperationexception(不支持操作異常)
操作 err move lan 16px exceptio operation amp span 這是由於: Arrays.asList() 返回java.util.Arrays$ArrayList, 而不是ArrayList。 Arrays$ArrayList