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 PopupWindow的使用!!! .doc Android高手进阶教程之----Android 数据库SQLiteDatabase的使用!.doc Android高手进阶教程之----Android 通用获取Ip的方法(判断手机是否联网的方法)...
这篇"Android高手进阶教程"涵盖了多个核心主题,旨在帮助开发者从基础知识跃升至更高级的实践应用。以下是一些主要知识点的详细说明: 1. **Android常用命令**: - `android`:SDK和AVD管理器,用于管理Android...
### Android高手进阶教程知识点概览 #### 一、Android常用命令集锦 - **ADB命令**: ADB(Android Debug Bridge)是Android平台下用于调试的工具,它可以帮助开发者进行设备管理、应用安装与卸载等操作。 - `adb ...
### Android高手进阶教程知识点概览 #### 一、Android常用命令集锦 在进行Android开发的过程中,掌握一些常用的命令可以极大地提高工作效率。本章节主要介绍了一些常用的Android命令及其应用场景。 - **adb命令**...
《Android高手进阶教程》是一份详尽的指南,旨在帮助开发者深入了解并掌握Android平台的高级功能与技术细节。这份教程覆盖了多个关键主题,包括系统命令、UI组件的定制化、数据存储、网络通信、位置服务等,是提升...
在Android自动化测试的众多工具中,Robotium是目前广泛使用的一款自动化测试框架,专门用于编写Android应用的功能测试用例。 Robotium提供了丰富而强大的API,用于模拟用户的各种交互操作,如点击、长按、滑动、...
本压缩包文件“BLOG_2”提供了《PopUpWindow使用详解(二)——进阶及答疑》这篇博客的源码,旨在帮助开发者深入理解和实践`PopupWindow`的高级用法以及解决实际开发中遇到的问题。 `PopupWindow`是Android SDK中的一...
Android PopupWindow UI进阶之弹窗的使用 Android 中的 PopupWindow 是一种常用的 UI 组件,它可以弹出一个对话框,提供给用户某些选项或信息。PopupWindow 和 AlertDialog 类似,但它们有各自的特点。下面我们来...
Android核心分析28篇,强烈推荐android初学者,android进阶者看看这个系列教程 Android应用开发者指南:性能优化 android开发教程合集(推荐新手看下这一季教程) 新手入门 会员贡献电子图书整理(内含PDF下载) ...
- Android开发入门与进阶教程 - Android视图View技巧总结 - Android编程之activity操作技巧 - Android操作SQLite数据库技巧 - Android操作json格式数据技巧 - Android数据库操作技巧 - Android文件操作技巧 - ...
本系列文章介绍Android开发的一些基础和进阶知识,并附带有一些简单的Demo示例,这些示例代码中很多Java文件都对Android API进行了良好的封装,可以直接拿到自己的项目中使用。 Code List Builder 给出了使用ant...
PopupWindow是Android开发中一个非常实用的控件,它允许我们创建浮动窗口,可以在主界面之上弹出,常用于下拉菜单、提示信息或者简单的对话框。本案例深入讲解PopupWindow的高级用法,旨在帮助开发者更好地理解和...
这个"popupwindow项目使用案例"可能包含了这些基本用法和一些进阶技巧,例如如何结合动画效果使PopupWindow更加生动。在实际应用中,根据需求,还可以扩展更多功能,如添加滑动手势关闭PopupWindow,或者实现...
此外,相关的Android相关内容还包括《Android窗口相关操作技巧总结》、《Android开发入门与进阶教程》、《Android调试技巧与常见问题解决方法汇总》、《Android基本组件用法总结》、《Android视图View技巧总结》、...
PopupWindow是Android开发中一种非常实用的UI组件,它能够以弹出窗口的形式展示内容,通常用于实现下拉菜单、提示信息或者简单的交互界面。在Android应用设计中,PopupWindow可以提供灵活的布局和交互体验,使用户...
然而,PopupWindow在实际使用中常常会遇到焦点问题,尤其是在包含可交互元素,如ListView时。本文将详细介绍如何解决PopupWindow的焦点问题。 1. 问题阐述: 当我们创建一个PopupWindow,并在其内部嵌入一个...
- PopupWindow的使用: Spinner的下拉列表实际上是由PopupWindow实现的,查看源码可以学习如何利用PopupWindow创建自定义的下拉效果。 6. **工具的运用** - Android Studio的布局预览: 在预览界面中可以实时查看...
8. **弹出菜单** - "Android之用PopupWindow实现弹出菜单.rar": PopupWindow是Android中创建临时视图的工具,适用于快速显示临时信息或菜单。通过这个例子,可以学习如何灵活地控制PopupWindow的位置、大小和样式...