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

Android中PopupWindow響應(yīng)返回鍵并關(guān)閉的2種方法

 更新時(shí)間:2015年04月24日 10:23:24   投稿:junjie  
這篇文章主要介紹了Android中PopupWindow響應(yīng)返回鍵并關(guān)閉的2種方法,本文講解了最簡單的方法、最通用的方法,需要的朋友可以參考下

PopupWindow 跟我們的 Activity 不一樣,因?yàn)槲覀冊跇?gòu)造 PW 的時(shí)候往往不是繼承來的,而是 new 出來的。所以不能使用重寫 PW 的 onKeyDown() 之類的方法來截獲鍵盤事件。好在 PW 本身的特性讓我們很容易就能做到用返回鍵來退出,當(dāng)然我們也可以截獲鍵盤事件,這樣就有兩種方法了。
 
方法一: 最簡單的方法

在 new 的時(shí)候,使用下面的方法:

復(fù)制代碼 代碼如下:

popupWindow = new PopupWindow(popupWindow_view, 200, 150, true);

關(guān)鍵在于最后一個(gè)參數(shù),SDK 給出的提示是 Focusable,顧名思義就是該 PW 的 Focusable 屬性,讓它能夠接受焦點(diǎn)。
當(dāng)然你可以用另一種構(gòu)造函數(shù),然后再去手動(dòng)設(shè)置focusable屬性:
popupWindow.setFocusable(true); // 一般都需要讓popupWindow里面的組件獲得焦點(diǎn)啊,往往用來接收用戶輸入或操作 動(dòng)作

注意: 必須加入下面這行作用未知的語句才能發(fā)揮作用:
popupWindow.setBackgroundDrawable(newBitmapDrawable());// 響應(yīng)返回鍵必須的語句。
請放心,設(shè)置 BackgroundDrawable 并不會改變你在配置文件中設(shè)置的背景顏色或圖像。

方法二: 最通用的方法


首先在 PW 的布局文件(*.xml)中隨意選取一個(gè)不影響任何操作的 View,推薦使用最外層的 Layout。
然后設(shè)置該 Layout 的 Focusable 和 FocusableInTouchMode 都為 true。
接著回到代碼中,獲取該 View 的實(shí)例,現(xiàn)在你就可以對該 View 重寫 OnKeyListener() 事件了。
我們可以手動(dòng)捕獲 KEYCODE_BACK 給對話框 dismiss()。給出一段示例:

復(fù)制代碼 代碼如下:

privatePopupWindow pw;
privateView view;
privateLinearLayout layMenu;
 
LayoutInflater inflater = (LayoutInflater) main.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
view = inflater.inflate(R.layout.popup_main_menu,null, false);
layMenu = (LinearLayout) view.findViewById(R.id.layMenu);
pw =new PopupWindow(view, LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT,true);
 
layMenu.setOnKeyListener(newOnKeyListener()
{
    publicboolean onKey(View v, intkeyCode, KeyEvent event)
    {
        if(event.getAction() == KeyEvent.ACTION_DOWN && keyCode == KeyEvent.KEYCODE_BACK)
            pw.dismiss();
 
        returnfalse;
    }
});

上面兩種方法的代碼可以并存,當(dāng)然如果使用第一種方法的話就不需要再捕獲返回鍵了,不過你可以嘗試捕獲其他你需要的按鍵

相關(guān)文章

  • Android獲取經(jīng)緯度的完美解決方案

    Android獲取經(jīng)緯度的完美解決方案

    Android中獲取定位信息的方式有很多種,系統(tǒng)自帶的LocationManager,都能幫助我們獲取當(dāng)前經(jīng)緯度,但第三方廠商一般都需要申請相關(guān)的key,且調(diào)用量高時(shí),還會產(chǎn)生資費(fèi)問題,這篇文章主要介紹了Android獲取經(jīng)緯度的完美解決方案,需要的朋友可以參考下
    2024-03-03
  • Android應(yīng)用內(nèi)懸浮窗Activity的簡單實(shí)現(xiàn)

    Android應(yīng)用內(nèi)懸浮窗Activity的簡單實(shí)現(xiàn)

    懸浮窗相信大家應(yīng)該都不陌生,下面這篇文章主要給大家介紹了關(guān)于Android應(yīng)用內(nèi)懸浮窗Activity簡單實(shí)現(xiàn)的相關(guān)資料,文中通過實(shí)例代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2022-01-01
  • android自定義窗口標(biāo)題示例分享

    android自定義窗口標(biāo)題示例分享

    這篇文章主要介紹了android自定義窗口標(biāo)題示例,需要的朋友可以參考下
    2014-03-03
  • AndroidStudio圖片壓縮工具ImgCompressPlugin使用實(shí)例

    AndroidStudio圖片壓縮工具ImgCompressPlugin使用實(shí)例

    這篇文章主要為大家介紹了AndroidStudio圖片壓縮工具ImgCompressPlugin使用實(shí)例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2022-08-08
  • 利用Jetpack Compose實(shí)現(xiàn)主題切換功能

    利用Jetpack Compose實(shí)現(xiàn)主題切換功能

    這篇文章主要介紹了如何利用Android中的Jetpack Compose實(shí)現(xiàn)主題切換功能,文中的示例代碼講解詳細(xì),對我們學(xué)習(xí)有一定幫助,需要的可以參考一下
    2022-01-01
  • Android入門之使用eclipse進(jìn)行源碼開發(fā)的方法

    Android入門之使用eclipse進(jìn)行源碼開發(fā)的方法

    這篇文章主要介紹了Android入門之使用eclipse進(jìn)行源碼開發(fā)的方法,較為詳細(xì)的分析了使用eclipse進(jìn)行Android源碼開發(fā)的具體步驟與相關(guān)注意事項(xiàng),需要的朋友可以參考下
    2016-02-02
  • android實(shí)現(xiàn)播放網(wǎng)絡(luò)視頻

    android實(shí)現(xiàn)播放網(wǎng)絡(luò)視頻

    這篇文章主要為大家詳細(xì)介紹了android實(shí)現(xiàn)播放網(wǎng)絡(luò)視頻,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2021-04-04
  • Android Intent封裝的實(shí)例詳解

    Android Intent封裝的實(shí)例詳解

    這篇文章主要介紹了Android Intent封裝的實(shí)例詳解的相關(guān)資料,希望通過本文能幫助到大家,需要的朋友可以參考下
    2017-09-09
  • 去掉activity默認(rèn)動(dòng)畫效果的簡單方法

    去掉activity默認(rèn)動(dòng)畫效果的簡單方法

    下面小編就為大家?guī)硪黄サ鬭ctivity默認(rèn)動(dòng)畫效果的簡單方法。小編覺得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2016-12-12
  • Android如何防止多次點(diǎn)擊事件

    Android如何防止多次點(diǎn)擊事件

    大家都遇到這樣一個(gè)問題吧,一個(gè)點(diǎn)擊事件多次觸發(fā)導(dǎo)致同樣的內(nèi)容提交了很多次,下面小編給大家?guī)硪黄恼聨椭蠹医鉀Qandroid如何防止多次點(diǎn)擊事件,對android防止多次點(diǎn)擊事件相關(guān)只是感興趣的朋友一起學(xué)習(xí)吧
    2015-12-12

最新評論

堆龙德庆县| 宝鸡市| 长寿区| 太康县| 宁南县| 和田市| 个旧市| 弋阳县| 沙湾县| 龙泉市| 九龙县| 大港区| 兖州市| 石景山区| 克什克腾旗| 高邑县| 兴业县| 万荣县| 泰安市| 榕江县| 德惠市| 双辽市| 柳河县| 柏乡县| 晋城| 台湾省| 长垣县| 桦川县| 甘南县| 兴海县| 千阳县| 松桃| 当雄县| 修水县| 准格尔旗| 青田县| 加查县| 绵阳市| 云南省| 南乐县| 天峻县|