Android禁止按鍵關閉AlertDialog

來源:互聯網
上載者:User

標籤:android   style   blog   class   code   java   

在Android系統中,預設點擊AlertDialog中的按鍵都會關閉該AlertDialog,但有些情況下我們並不希望使對話方塊關閉,或者希望使對話方塊在自己需要的時候再關閉。

例如我現在做的一個項目,通過AlertDialog讀取使用者輸入的一個值,希望只有在判斷值為正確範圍內才關閉該對話方塊,否則對話方塊予以保留,並給以使用者相應的提醒。

可以利用反射的機制來實現這一效果:

不關閉對話方塊:

?
1 2 3 4 5 6 7 8 9 10 // 使對話方塊無法關閉 try {     Field field =         dialog.getClass().getSuperclass().getDeclaredField("mShowing");     field.setAccessible(true);     field.set(dialog, false); } catch (Exception e) {     e.printStackTrace(); }

關閉對話方塊:

 1 // 使對話方塊關閉 2 try { 3     Field field =      4       dialog.getClass().getSuperclass() 5         .getDeclaredField("mShowing"); 6     field.setAccessible(true); 7     field.set(dialog, true); 8 }  9 catch (Exception e) {10     e.printStackTrace();11 }

 

 

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.