欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

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

 更新時(shí)間:2016年11月27日 16:41:44   作者:海 子  
這篇文章主要介紹了Android 解決dialog彈出時(shí)無法捕捉Activity的back事件問題的相關(guān)資料,需要的朋友可以參考下

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

  在一些情況下,我們需要捕捉back鍵事件,然后在捕捉到的事件里寫入我們需要進(jìn)行的處理,通常可以采用下面三種辦法捕捉到back事件:

  1)重寫onKeyDown或者onKeyUp方法

  2)重寫onBackPressed方法

  3)重寫dispatchKeyEvent方法

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

  然而在有dialog彈出時(shí),想捕捉back鍵的事件的話,上述三種辦法都無法實(shí)現(xiàn)。因?yàn)樯鲜龇椒ㄊ侵貙懺赼ctivity里面的,也就是說當(dāng)activity是當(dāng)前焦點(diǎn)時(shí),它可以捕捉到相應(yīng)的back鍵事件,而有dialog彈出時(shí),dialog獲取了當(dāng)前焦點(diǎn),所以activity里面的方法無法獲取到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ì)本站的支持!

相關(guān)文章

  • 詳解Android 中的文件存儲(chǔ)

    詳解Android 中的文件存儲(chǔ)

    這篇文章主要介紹了Android 中的文件存儲(chǔ)的相關(guān)資料,幫助大家更好的理解和學(xué)習(xí)使用Android開發(fā),感興趣的朋友可以了解下
    2021-03-03
  • Android實(shí)現(xiàn)屏幕保持常亮功能

    Android實(shí)現(xiàn)屏幕保持常亮功能

    這篇文章主要為大家詳細(xì)介紹了Android實(shí)現(xiàn)屏幕保持常亮功能,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2022-01-01
  • Android實(shí)現(xiàn)Flip翻轉(zhuǎn)動(dòng)畫效果

    Android實(shí)現(xiàn)Flip翻轉(zhuǎn)動(dòng)畫效果

    這篇文章主要介紹了Android實(shí)現(xiàn)Flip翻轉(zhuǎn)動(dòng)畫效果,對(duì)Android程序設(shè)計(jì)人員有很好的參考借鑒價(jià)值,需要的朋友可以參考下
    2014-08-08
  • Flutter多選按鈕組件Checkbox使用方法詳解

    Flutter多選按鈕組件Checkbox使用方法詳解

    這篇文章主要為大家詳細(xì)介紹了Flutter多選按鈕組件Checkbox使用方法,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2021-08-08
  • Android實(shí)現(xiàn)簡易記事本

    Android實(shí)現(xiàn)簡易記事本

    這篇文章主要為大家詳細(xì)介紹了Android實(shí)現(xiàn)簡易記事本,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2020-07-07
  • Android開發(fā)中Dialog半透明背景消失

    Android開發(fā)中Dialog半透明背景消失

    這篇文章主要介紹了Android開發(fā)中Dialog半透明背景消失的相關(guān)資料,非常不錯(cuò),具有參考借鑒價(jià)值,需要的朋友可以參考下
    2016-11-11
  • Android 馬賽克(Mosaics)效果

    Android 馬賽克(Mosaics)效果

    這篇文章主要為大家介紹了Android 馬賽克(Mosaics)效果,馬賽克(Mosaics)效果應(yīng)用非常廣泛,想要學(xué)習(xí)的不要錯(cuò)過本文,可以借鑒參考一下
    2016-01-01
  • android實(shí)現(xiàn)關(guān)閉或開啟移動(dòng)網(wǎng)絡(luò)數(shù)據(jù)

    android實(shí)現(xiàn)關(guān)閉或開啟移動(dòng)網(wǎng)絡(luò)數(shù)據(jù)

    本篇文章是對(duì)android實(shí)現(xiàn)關(guān)閉或開啟移動(dòng)網(wǎng)絡(luò)數(shù)據(jù)進(jìn)行了詳細(xì)的分析介紹,需要的朋友參考下
    2013-06-06
  • 安卓逆向案例分析之蟬媽媽sign破解

    安卓逆向案例分析之蟬媽媽sign破解

    這篇文章主要為大家介紹了安卓逆向案例分析蟬媽媽sign破解的方式講解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步
    2022-02-02
  • Kotlin Fragment的具體使用詳解

    Kotlin Fragment的具體使用詳解

    Fragment是Android3.0后引入的一個(gè)新的API,他出現(xiàn)的初衷是為了適應(yīng)大屏幕的平板電腦, 當(dāng)然現(xiàn)在他仍然是平板APP UI設(shè)計(jì)的寵兒,而且我們普通手機(jī)開發(fā)也會(huì)加入這個(gè)Fragment, 我們可以把他看成一個(gè)小型的Activity,又稱Activity片段
    2022-10-10

最新評(píng)論