`
abc20899
  • 浏览: 933280 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

Android高手进阶教程(十)之----Android PopupWindow的使用

阅读更多
01.package com.android.tutor;  
02.import android.app.Activity;  
03.import android.content.Context;  
04.import android.os.Bundle;  
05.import android.view.Gravity;  
06.import android.view.LayoutInflater;  
07.import android.view.View;  
08.import android.view.View.OnClickListener;  
09.import android.view.ViewGroup.LayoutParams;  
10.import android.widget.Button;  
11.import android.widget.PopupWindow;  
12.public class PopupWindowDemo extends Activity  implements OnClickListener{  
13.    private Button btn;  
14.      
15.    public void onCreate(Bundle savedInstanceState) {  
16.        super.onCreate(savedInstanceState);  
17.        setContentView(R.layout.main);  
18.          
19.        btn = (Button)findViewById(R.id.btn);  
20.        btn.setOnClickListener(this);  
21.    }  
22.    @Override 
23.    public void onClick(View v) {  
24.        Context mContext = PopupWindowDemo.this;  
25.        if (v.getId() == R.id.btn) {  
26.            LayoutInflater mLayoutInflater = (LayoutInflater) mContext  
27.                    .getSystemService(LAYOUT_INFLATER_SERVICE);  
28.            View music_popunwindwow = mLayoutInflater.inflate(  
29.                    R.layout.music_popwindow, null);  
30.            PopupWindow mPopupWindow = new PopupWindow(music_popunwindwow, LayoutParams.FILL_PARENT,  
31.                    LayoutParams.WRAP_CONTENT);  
32.              
33.            mPopupWindow.showAtLocation(findViewById(R.id.main), Gravity.RIGHT|Gravity.BOTTOM, 0, 0);  
34.        }  
35.    }  
36.} 

需要强调的是这里PopupWindow必须有某个事件触发才会显示出来,不然总会抱错,不信大家可以试试!

随着这个问题的出现,就会同学问了,那么我想初始化让PopupWindow显示出来,那怎么办了,不去寄托于其他点击事件,

在这里我用了定时器Timer来实现这样的效果,当然这里就要用到Handler了


01.package com.android.tutor;  
02.import java.util.Timer;  
03.import java.util.TimerTask;  
04.import android.app.Activity;  
05.import android.content.Context;  
06.import android.os.Bundle;  
07.import android.os.Handler;  
08.import android.os.Message;  
09.import android.view.Gravity;  
10.import android.view.LayoutInflater;  
11.import android.view.View;  
12.import android.view.ViewGroup.LayoutParams;  
13.import android.widget.PopupWindow;  
14.public class PopupWindowDemo extends Activity{  
15.    private Handler mHandler = new Handler(){  
16.          
17.        public void handleMessage(Message msg) {  
18.            switch (msg.what) {  
19.            case 1:  
20.                showPopupWindow();  
21.                break;  
22.            }  
23.        };  
24.    };  
25.      
26.    public void onCreate(Bundle savedInstanceState) {  
27.        super.onCreate(savedInstanceState);  
28.        setContentView(R.layout.main);  
29.          
30.        //create the timer   
31.        Timer timer = new Timer();  
32.        timer.schedule(new initPopupWindow(), 100);  
33.    }  
34.      
35.    private class initPopupWindow extends TimerTask{  
36.        @Override 
37.        public void run() {  
38.              
39.            Message message = new Message();  
40.            message.what = 1;  
41.            mHandler.sendMessage(message);  
42.              
43.        }         
44.    }  
45.      
46.      
47.    public void showPopupWindow() {  
48.        Context mContext = PopupWindowDemo.this;  
49.        LayoutInflater mLayoutInflater = (LayoutInflater) mContext  
50.                .getSystemService(LAYOUT_INFLATER_SERVICE);  
51.        View music_popunwindwow = mLayoutInflater.inflate(  
52.                R.layout.music_popwindow, null);  
53.        PopupWindow mPopupWindow = new PopupWindow(music_popunwindwow,  
54.                LayoutParams.FILL_PARENT, LayoutParams.WRAP_CONTENT);  
55.        mPopupWindow.showAtLocation(findViewById(R.id.main), Gravity.CENTER, 0, 0);  
56.    }  
57.}

main.xml

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/main"
    android:orientation="vertical"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    >
<TextView
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:text="Welcome to Mr Wei's Blog!!"
    />
<Button
android:id="@+id/btn"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Show PopupWindow"
/>
<Button
android:id="@+id/btn1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="hide PopupWindow"
/>
</LinearLayout>


本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/Android_Tutor/archive/2010/05/10/5576533.aspx
分享到:
评论

相关推荐

    Android高手进阶教程与Android基础教程

    Android高手进阶教程之----Android PopupWindow的使用!!! .doc Android高手进阶教程之----Android 数据库SQLiteDatabase的使用!.doc Android高手进阶教程之----Android 通用获取Ip的方法(判断手机是否联网的方法)...

    Android高手进阶教程

    这篇"Android高手进阶教程"涵盖了多个核心主题,旨在帮助开发者从基础知识跃升至更高级的实践应用。以下是一些主要知识点的详细说明: 1. **Android常用命令**: - `android`:SDK和AVD管理器,用于管理Android...

    android高手进阶教程 完整版 pdf

    ### Android高手进阶教程知识点概览 #### 一、Android常用命令集锦 - **ADB命令**: ADB(Android Debug Bridge)是Android平台下用于调试的工具,它可以帮助开发者进行设备管理、应用安装与卸载等操作。 - `adb ...

    Android高手进阶教程.pdf

    ### Android高手进阶教程知识点概览 #### 一、Android常用命令集锦 在进行Android开发的过程中,掌握一些常用的命令可以极大地提高工作效率。本章节主要介绍了一些常用的Android命令及其应用场景。 - **adb命令**...

    android高手进阶教程

    《Android高手进阶教程》是一份详尽的指南,旨在帮助开发者深入了解并掌握Android平台的高级功能与技术细节。这份教程覆盖了多个关键主题,包括系统命令、UI组件的定制化、数据存储、网络通信、位置服务等,是提升...

    Android自动化测试之Robotium--进阶操作.pdf

    在Android自动化测试的众多工具中,Robotium是目前广泛使用的一款自动化测试框架,专门用于编写Android应用的功能测试用例。 Robotium提供了丰富而强大的API,用于模拟用户的各种交互操作,如点击、长按、滑动、...

    博客《PopUpWindow使用详解(二)——进阶及答疑》对应源码

    本压缩包文件“BLOG_2”提供了《PopUpWindow使用详解(二)——进阶及答疑》这篇博客的源码,旨在帮助开发者深入理解和实践`PopupWindow`的高级用法以及解决实际开发中遇到的问题。 `PopupWindow`是Android SDK中的一...

    android popupwindow UI进阶之弹窗的使用

    Android PopupWindow UI进阶之弹窗的使用 Android 中的 PopupWindow 是一种常用的 UI 组件,它可以弹出一个对话框,提供给用户某些选项或信息。PopupWindow 和 AlertDialog 类似,但它们有各自的特点。下面我们来...

    android开发资料大全

    Android核心分析28篇,强烈推荐android初学者,android进阶者看看这个系列教程 Android应用开发者指南:性能优化 android开发教程合集(推荐新手看下这一季教程) 新手入门 会员贡献电子图书整理(内含PDF下载) ...

    Android编程之PopupWindow隐藏及显示方法示例(showAtLocation,showAsDropDown)

    - Android开发入门与进阶教程 - Android视图View技巧总结 - Android编程之activity操作技巧 - Android操作SQLite数据库技巧 - Android操作json格式数据技巧 - Android数据库操作技巧 - Android文件操作技巧 - ...

    Android代码-Android

    本系列文章介绍Android开发的一些基础和进阶知识,并附带有一些简单的Demo示例,这些示例代码中很多Java文件都对Android API进行了良好的封装,可以直接拿到自己的项目中使用。 Code List Builder 给出了使用ant...

    PopupWindow的进阶

    PopupWindow是Android开发中一个非常实用的控件,它允许我们创建浮动窗口,可以在主界面之上弹出,常用于下拉菜单、提示信息或者简单的对话框。本案例深入讲解PopupWindow的高级用法,旨在帮助开发者更好地理解和...

    popupwindow项目使用案例

    这个"popupwindow项目使用案例"可能包含了这些基本用法和一些进阶技巧,例如如何结合动画效果使PopupWindow更加生动。在实际应用中,根据需求,还可以扩展更多功能,如添加滑动手势关闭PopupWindow,或者实现...

    Android编程实现popupwindow定时消失的方法

    此外,相关的Android相关内容还包括《Android窗口相关操作技巧总结》、《Android开发入门与进阶教程》、《Android调试技巧与常见问题解决方法汇总》、《Android基本组件用法总结》、《Android视图View技巧总结》、...

    PopupWindowDemo

    PopupWindow是Android开发中一种非常实用的UI组件,它能够以弹出窗口的形式展示内容,通常用于实现下拉菜单、提示信息或者简单的交互界面。在Android应用设计中,PopupWindow可以提供灵活的布局和交互体验,使用户...

    popupwindow焦点问题解决方案

    然而,PopupWindow在实际使用中常常会遇到焦点问题,尤其是在包含可交互元素,如ListView时。本文将详细介绍如何解决PopupWindow的焦点问题。 1. 问题阐述: 当我们创建一个PopupWindow,并在其内部嵌入一个...

    android Spinner控件的使用

    - PopupWindow的使用: Spinner的下拉列表实际上是由PopupWindow实现的,查看源码可以学习如何利用PopupWindow创建自定义的下拉效果。 6. **工具的运用** - Android Studio的布局预览: 在预览界面中可以实时查看...

    173个Android项目源码_第三部分

    8. **弹出菜单** - "Android之用PopupWindow实现弹出菜单.rar": PopupWindow是Android中创建临时视图的工具,适用于快速显示临时信息或菜单。通过这个例子,可以学习如何灵活地控制PopupWindow的位置、大小和样式...

Global site tag (gtag.js) - Google Analytics