work hard work smart

专注于Java后端开发。 不断总结,举一反三。
随笔 - 1158, 文章 - 0, 评论 - 153, 阅读 - 186万
  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理
< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5

Android 中PopupWindow使用

Posted on   work hard work smart  阅读(21689)  评论(0编辑  收藏  举报

Android 中PopupWindow使用。

PopupWindow会阻塞对话框,要在外部线程 或者 PopupWindow本身做退出才行。

mypopWindow.xml的Layout设计如下。

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:background="#259"
    android:orientation="vertical" >
 
    <TextView
        android:id="@+id/textView1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Here is Pop Window" />
 
    <Button
        android:id="@+id/button1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="OK" />
 
    <Button
        android:id="@+id/button2"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Cancle" />
 
</LinearLayout>

 MainActivity.java文件。

 在MainActivity的Button按钮单击,然后显示PopupWindow。

private void showPopWindow(Context context, View parent)
    {      
        LayoutInflater inflater = (LayoutInflater)             
                context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);    
        final View vPopWindow=inflater.inflate(R.layout.mypopwindow, null, false); 
        //宽300 高300           
        final PopupWindow popWindow = new PopupWindow(vPopWindow,300,300,true);
        Button okButton = (Button)vPopWindow.findViewById(R.id.button1);
        okButton.setOnClickListener(new View.OnClickListener() {
             
            @Override
            public void onClick(View v) {
                // TODO Auto-generated method stub
                Toast.makeText(MainActivity.this, "You click OK", Toast.LENGTH_SHORT).show();
            }
        });
         
        Button cancleButton = (Button)vPopWindow.findViewById(R.id.button2);
        cancleButton.setOnClickListener(new View.OnClickListener() {
             
            @Override
            public void onClick(View v) {
                // TODO Auto-generated method stub
                popWindow.dismiss(); //Close the Pop Window
            }
        });
         
        popWindow.showAtLocation(parent, Gravity.CENTER, 0, 0);
         
         
    }

 效果图如下:最后显示是剧中的,这里我只是截取了部分图片。

单击Ok按钮显示You click OK信息。单击取消,则关闭PopupWindow.

编辑推荐:
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
阅读排行:
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 【译】Visual Studio 中新的强大生产力特性
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构
· 字符编码:从基础到乱码解决
历史上的今天:
2012-03-15 Metro Style App开发快速入门 之基本控件使用总结
点击右上角即可分享
微信分享提示