最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Android解決dialog彈出時(shí)無(wú)法捕捉Activity的back事件的方法

 更新時(shí)間:2015年05月28日 10:11:01   作者:海 子  
這篇文章主要介紹了Android解決dialog彈出時(shí)無(wú)法捕捉Activity的back事件的方法,涉及Android操作Activity事件的相關(guān)技巧,需要的朋友可以參考下

本文實(shí)例講述了Android解決dialog彈出時(shí)無(wú)法捕捉Activity的back事件的方法。分享給大家供大家參考。具體分析如下:

在一些情況下,我們需要捕捉back鍵事件,然后在捕捉到的事件里寫入我們需要進(jìn)行的處理,通??梢圆捎孟旅嫒N辦法捕捉到back事件:

1)重寫onKeyDown或者onKeyUp方法

2)重寫onBackPressed方法

3)重寫dispatchKeyEvent方法

這三種辦法有什么區(qū)別在這里不進(jìn)行闡述,有興趣的朋友可以查閱相關(guān)資料。

然而在有dialog彈出時(shí),想捕捉back鍵的事件的話,上述三種辦法都無(wú)法實(shí)現(xiàn)。因?yàn)樯鲜龇椒ㄊ侵貙懺赼ctivity里面的,也就是說(shuō)當(dāng)activity是當(dāng)前焦點(diǎn)時(shí),它可以捕捉到相應(yīng)的back鍵事件,而有dialog彈出時(shí),dialog獲取了當(dāng)前焦點(diǎn),所以activity里面的方法無(wú)法獲取到back鍵事件,此時(shí)有兩種思路:

1)設(shè)置dialog的setOnCancelListener監(jiān)聽:

selectDialog.setOnCancelListener(new OnCancelListener() {
  @Override
  public void onCancel(DialogInterface dialog) {
   // TODO Auto-generated method stub
   // Toast.makeText(getBaseContext(), "點(diǎn)擊了back", Toast.LENGTH_SHORT).show();
  }
});

這樣就可以捕捉到back鍵的事件了,當(dāng)按下back鍵時(shí),系統(tǒng)默認(rèn)的操作會(huì)讓dialog cancel掉,此時(shí)會(huì)觸發(fā)OnCancelListener,然后在onCancel方法里面就可以實(shí)現(xiàn)自己想要實(shí)現(xiàn)的操作了。

2)設(shè)置dialog的setOnKeyListener并重寫dispatchKeyEvent方法

selectDialog.setOnKeyListener(new OnKeyListener() {
  @Override
  public boolean onKey(DialogInterface dialog, int keyCode, KeyEvent event) {
   // TODO Auto-generated method stub
   if(keyCode == KeyEvent.KEYCODE_BACK && event.getRepeatCount()==0)
   {
    dialog.dismiss();
   }
   return false;
  }
});
public boolean dispatchKeyEvent(KeyEvent event)
{
 switch(event.getKeyCode())
 {
 case KeyEvent.KEYCODE_BACK:  
  Toast.makeText(getBaseContext(), "點(diǎn)擊了back", Toast.LENGTH_SHORT).show();
  break;
 default:
  break;
 }
 return super.dispatchKeyEvent(event);
}

然后在dispatchKeyEvent里面就可以實(shí)現(xiàn)自己想要實(shí)現(xiàn)的操作了。

希望本文所述對(duì)大家的Android程序設(shè)計(jì)有所幫助。

相關(guān)文章

最新評(píng)論

两当县| 商洛市| 潮州市| 丁青县| 鸡泽县| 天门市| 澳门| 攀枝花市| 淮南市| 道孚县| 满洲里市| 济南市| 通山县| 西华县| 阿拉尔市| 全椒县| 文成县| 嵊州市| 霍山县| 新昌县| 大宁县| 抚远县| 芮城县| 康保县| 博野县| 吉木萨尔县| 桓台县| 漾濞| 双桥区| 张家界市| 南阳市| 襄垣县| 惠州市| 中卫市| 兴文县| 武清区| 汉寿县| 东城区| 台中市| 乐平市| 武山县|