AlertDialog----確認單擊物理鍵退出對話框

引用自:http://blog.csdn.net/zsh157621866651/article/details/51539301


範例一運行效果圖:




在OneActivity.java中添加如下監聽器:

[java] view plain copy
 print?在CODE上查看代碼片派生到我的代碼片
  1. //在此方法中創建dialog  
  2.     protected void createdialog(){  
  3.         //初始化AlertDialog構建器對象  
  4.         AlertDialog.Builder b=new Builder(OneActivity.this);  
  5.         //設置dialog信息  
  6.         b.setMessage("確定退出嗎?");  
  7.         //設置dialog標題  
  8.         b.setTitle("提示");  
  9.         b.setIcon(android.R.drawable.ic_dialog_alert);//添加警告圖片  
  10.         b.setPositiveButton("確認"new DialogInterface.OnClickListener() {  
  11.             @Override  
  12.             public void onClick(DialogInterface dialog, int which) {  
  13.                 //如果用戶單擊確認退出,則對話框消失,程序關閉  
  14.                 dialog.dismiss();  
  15. //              OneActivity.this.finish();  
  16.                 android.os.Process.killProcess(android.os.Process.myPid());  
  17.             }  
  18.         });  
  19.         b.setNegativeButton("取消"new DialogInterface.OnClickListener() {  
  20.             @Override  
  21.             public void onClick(DialogInterface dialog, int which) {  
  22.                 //如果用戶單機取消退出,則對話框消失  
  23.                 dialog.dismiss();  
  24.             }  
  25.         });  
  26.         //創建對話框並且顯示  
  27.         b.create().show();  
  28.     }  
  29.     //在Activity中的鍵盤監聽回調時間  
  30.     public boolean onKeyDown(int keyCode,KeyEvent event){  
  31.         if(keyCode==KeyEvent.KEYCODE_BACK || (keyCode == KeyEvent.KEYCODE_HOME)   
  32.                                 && event.getRepeatCount()==0){  
  33.             createdialog();  
  34.         }  
  35.         return false;  
  36.     }  


範例二運行效果圖:





[java] view plain copy
 print?在CODE上查看代碼片派生到我的代碼片
  1. //創建dialog方法  
  2.     protected void createDialog(){  
  3.         //初始化AlertDialog構造器對象  
  4.         AlertDialog.Builder builder=new Builder(MainActivity.this);  
  5.         //設置dialog的信息  
  6.         builder.setMessage("如果您有什麼好的建議,希望及時聯繫!");  
  7.         //內部定義TextView  
  8.         TextView tv=new TextView(MainActivity.this);  
  9.         tv.setText("關於");  
  10.         tv.setTextSize(35);  
  11.         //創建對話框並且顯示  
  12.         AlertDialog dialog=builder.create();  
  13.         dialog.setCustomTitle(tv);  
  14.         dialog.show();        
  15.     }  
  16.       
  17.     //在Activity中的鍵盤監聽回調事件  
  18.     public boolean onKeyDown(int keyCode,KeyEvent event){  
  19.         //判斷當用戶按下menu鍵的時候觸發的事件  
  20.         if(keyCode==KeyEvent.KEYCODE_MENU && event.getRepeatCount()==0){  
  21.             createDialog();  
  22.         }  
  23.         return false;  
  24.     }  


範例三運行效果圖:



[java] view plain copy
 print?在CODE上查看代碼片派生到我的代碼片
  1. private TextView Tv;  
  2.     @Override  
  3.     protected void onCreate(Bundle savedInstanceState) {  
  4.         super.onCreate(savedInstanceState);  
  5.         setContentView(R.layout.activity_evaluate);  
  6.         Tv=(TextView) findViewById(R.id.Tv);  
  7.     }  
  8.     //創建dialog  
  9.     protected void createDialog(){  
  10.         //構造dialog  
  11.         Dialog dialog=new Builder(EvaluateActivity.this)  
  12.                 //設置對話框的標題和圖標  
  13.                 .setIcon(R.drawable.white).setTitle("評價對話框")  
  14.                 //對話框中的信息  
  15.                 .setMessage("謝謝您對我的服務進行評價:")  
  16.                 //設置對話框的按鈕  
  17.                 .setPositiveButton("很好"new OnClickListener() {  
  18.                     @Override  
  19.                     public void onClick(DialogInterface arg0, int arg1) {  
  20.                         Tv.setText("很好");  
  21.                     }  
  22.                 }).setNegativeButton("一般"new OnClickListener() {  
  23.                     @Override  
  24.                     public void onClick(DialogInterface arg0, int arg1) {  
  25.                         Tv.setText("一般");  
  26.                     }  
  27.                 }).setNeutralButton("有待提高"new OnClickListener() {  
  28.                     @Override  
  29.                     public void onClick(DialogInterface arg0, int arg1) {  
  30.                         Tv.setText("有待提高");  
  31.                     }  
  32.                 }).create();  
  33.         //顯示對話框  
  34.         dialog.show();  
  35.     }  
  36.     //在Activity中的鍵盤監聽回調事件  
  37.     public boolean onKeyDown(int keyCode,KeyEvent event){  
  38.         //當用戶按下menu鍵的時候彈出對話框  
  39.         if(keyCode==KeyEvent.KEYCODE_MENU && event.getRepeatCount()==0){  
  40.             createDialog();  
  41.         }  
  42.         return false;  
  43.     }  
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章