歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux編程 >> Linux編程 >> Android點擊AlertDialog的button不退出對話框的方法

Android點擊AlertDialog的button不退出對話框的方法

日期:2017/3/1 10:13:42   编辑:Linux編程

Android彈出對話框時,默認情況下無論點擊哪個button,觸發事件後對話框都會自動關閉。

可以利用反射機制,使觸發按鈕點擊事件之後不退出對話框。

解決方法:在setButton的OnClickListener的OnClick裡改變field,filed的改變對於該對象來說是全局的,所以想要關閉時也要添加代碼。

不退出對話框:

  1. .setPositiveButton("開始測試", new DialogInterface.OnClickListener(){
  2. @Override
  3. public void onClick(DialogInterface dialog, int which) {
  4. ; try
  5. {
  6. Field field = dialog.getClass().getSuperclass().getDeclaredField("mShowing");
  7. field.setAccessible(true);
  8. //設置mShowing值,欺騙android系統
  9. field.set(dialog, false);
  10. }catch(Exception e) {
  11. e.printStackTrace();
  12. }
  13. }
  14. })

點擊退出對話框:

  1. .setNegativeButton("退出測試", new DialogInterface.OnClickListener() {
  2. @Override
  3. public void onClick(DialogInterface dialog, int which) {
  4. // TODO Auto-generated method stub
  5. try
  6. {
  7. Field field = dialog.getClass().getSuperclass().getDeclaredField("mShowing");
  8. field.setAccessible(true);
  9. //設置mShowing值,欺騙android系統
  10. field.set(dialog, true);
  11. } catch(Exception e) {
  12. e.printStackTrace();
  13. }
  14. }
  15. })
Copyright © Linux教程網 All Rights Reserved