Android的PopupWindow使用android学习之旅(四十三)

PopupWindow简介

PopupWindow是一个类似dialog的控件,可以接受任何的view作为下拉列表显示。

用法

代码展示

package peng.liu.test;

import android.app.Activity;
import android.app.AlertDialog;
import android.content.DialogInterface;
import android.os.Bundle;
import android.view.Gravity;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ArrayAdapter;
import android.widget.Button;
import android.widget.ImageView;
import android.widget.PopupWindow;
import android.widget.TextView;

public class MainActivity extends Activity {
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        View root = this.getLayoutInflater().inflate(R.layout.cell,null);
        final PopupWindow popupWindow = new PopupWindow(root,280,360);
        findViewById(R.id.button).setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
//                popupWindow.showAsDropDown(view);
                popupWindow.showAtLocation(findViewById(R.id.button), Gravity.CENTER,20,20);
            }
        });
        root.findViewById(R.id.button2).setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                popupWindow.dismiss();
            }
        });
    }
}
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent" android:layout_height="match_parent">

    <Button
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="New Button"
        android:id="@+id/button2" />
</LinearLayout>
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical"
    >

    <Button
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="New Button"
        android:id="@+id/button" />
</LinearLayout>
时间: 2024-10-27 11:14:03

Android的PopupWindow使用android学习之旅(四十三)的相关文章

Android的DatePicker和TimePicker-android学习之旅(三十八)

DatePicker和TimePicker简介 DatePicker和TimePicker是从FrameLayout继承而来,他们都是比较简单的组件.时间改变时间分别添加OnDateChangeListener()和OnTimeChangeListener()来监听. DatePicker和TimePicker属性 选择日期和时间的实例 package peng.liu.test; import android.app.Activity; import android.graphics.Colo

Android的ScrollView和HorizontalScrollView-android学习之旅(四十一)

HorizontalScrollView和ScrollView简介 ScrollView和HorizontalScrollView都继承于FrameLayout组件,两个都是容器,前者为里面的组件添加竖直的滚动条,后者是水平的滚动条. 代码示例 <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk

Android下拉列表控件spinner-andoid学习之旅(十一)

废话不多说,下拉列表常用的就是spinner控件. 直接上代码: package peng.liu.testview; import android.app.Activity; import android.os.Bundle; import android.view.View; import android.widget.AdapterView; import android.widget.ArrayAdapter; import android.widget.Spinner; import

Android的AdapterViewFlipper和Stackview-android学习之旅(三十)

AdapterViewFlipper简介 AdapterViewFlipper继承了AdapterViewAnimater.每次只能显示一个组件,用showPrevious()和showNext()来显示这些组件上一个和下一个.还有startFlipping()控制它自动播放. AdapterViewFlipper属性 代码实例 package peng.liu.testview; import android.app.Activity; import android.content.res.T

Android的ImageSwitcher和TextSw-android学习之旅(三十四)

ImageSwitcher简介 ImageSwitcher继承了ViewSwitcher,所以在切换时候会有动画,可以把它理解成一个动画版本的ImageView. 他的showNext(),和showPrevious()方法分别显示下一个和上一个. 为ImageSwitcher提供一个ViewFactory,该ViewFactory的makeView()生成的View必须是ImageView. ImageSwicher可以用setimageResource()和色图ImageDrawable()

Android的数字选择器NumberPicker-android学习之旅(三十七)

我想说的话 今天晚上我依然在图书馆写博客,其实此刻我的没心激动而忐忑,因为明天就是足球赛的决赛,我作为主力球员压力很大,因对对方很强大,但是那又怎么样.so what...我不会停止写博客的 NumberPicker简介 NumberPicker这个控件可以让你滑动来选择数值. 通过三个方法来设置: 1.setMinValue() 2.setMaxVlaue() 3.setValue() 代码示例 <?xml version="1.0" encoding="utf-8&

Android广播接收器Broadcast Receiver-android学习之旅(十二)

首先继承BroadcastReceiver类,并在manifest中注册 public class MyReceiver extends BroadcastReceiver { public MyReceiver() { } @Override public void onReceive(Context context, Intent intent) { throw new UnsupportedOperationException("Not yet implemented"); }

Android的View类介绍-android的学习之旅(十三)

view概述 android绝大部分UI组件都放在android.view和android.widght包中,android的虽有UI组件都继承了View类. View类还有一个非常重要的子类:ViewGroup.ViewGroup继承了View,通常作为其他组件的容器使用,android对View和ViewGroup的设计采用了组合器模式: 即是ViewGroup属于View类,所以ViewGroup既可以包含view类,又可以包含ViewGroup类. 布局简介 android提供了两种方式

[原创] zabbix学习之旅四:mail客户端安装

相信大家使用zabbix的最主要目的就是当被监控机器发生故障时,能通过zabbix获得第一时间的报警提醒.zabbix常用的报警媒介有email,短信,jabber和脚本,这其中脚本类型最为灵活,尤其当邮件服务器.短信服务器不与zabbix server在同一台服务器时,自定义脚本基本上成为我们唯一可靠的方式. 在本文中,我们将在zabbix server上安装邮件客户端,并以脚本方式将报警信息通过邮件发出来,若以后想做短信提醒.微信提醒,技术路径都是一样的. 安装msmtp msmtp是一个S