标签:风飞雪未扬 从零开始学android android弹出菜单 popwindow
popupwindow组件是在点击按钮或进行某项操作后在屏幕上弹出的窗口,并进行UI更新,数据处理等一些操作
常用的方法
1
|
public PopupWindow(Context context)
|
构造
|
创建PopupWindow实例
|
2
|
public PopupWindow(View contentView, int width, int height)
|
构造
|
创建PopupWindow实例,同时传入弹出窗口的显示宽度和高度
|
3
|
public PopupWindow(View contentView, int width, int height, boolean focusable)
|
构造
|
创建PopupWindow实例,同时传入弹出窗口的显示宽度和高度以及是否设置焦点
|
4
|
public void dismiss()
|
普通
|
隐藏窗口
|
5
|
public int getHeight()
|
普通
|
取得弹出窗口的高度
|
6
|
public int getWidth()
|
普通
|
取得弹出窗口的宽度
|
7
|
public boolean isShowing()
|
普通
|
判断窗口是否显示
|
8
|
public void setAnimationStyle(int animationStyle)
|
普通
|
为弹出窗口设置动画
|
9
|
public void setContentView(View contentView)
|
普通
|
设置显示组件
|
10
|
public void setFocusable(boolean focusable)
|
普通
|
设置是否获得焦点
|
11
|
public void setHeight(int height)
|
普通
|
设置弹出窗口高度
|
12
|
public void setWidth(int width)
|
普通
|
设置弹出窗口宽度
|
13
|
public void setOnDismissListener
(PopupWindow.OnDismissListener onDismissListener)
|
普通
|
设置弹出窗口隐藏后的事件监听
|
分别定义两个xml文件,一个是默认显示的住界面,一个是弹出窗口的界面
<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="vertical" android:layout_width="wrap_content" android:layout_height="wrap_content"> <TextView android:id="@+id/popinfo" android:text="请选择您的当前状态:" android:layout_width="wrap_content" android:textSize="20px" android:layout_height="wrap_content"/> <RadioGroup android:id="@+id/changestatus" android:layout_width="wrap_content" android:layout_height="wrap_content" android:orientation="vertical" android:checkedButton="@+id/online"> <RadioButton android:id="@+id/online" android:text="在线"/> <RadioButton android:id="@+id/offline" android:text="离线"/> <RadioButton android:id="@+id/stealth" android:text="隐身"/> </RadioGroup> <Button android:id="@+id/cancel" android:layout_height="wrap_content" android:layout_width="wrap_content" android:text="取消" /> </LinearLayout>
<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="vertical" android:layout_width="fill_parent" android:layout_height="fill_parent"> <TextView android:id="@+id/statusinfo" android:layout_height="wrap_content" android:layout_width="fill_parent" android:text="当前用户状态:在线" /> <Button android:id="@+id/popbut" android:layout_height="wrap_content" android:layout_width="fill_parent" android:text="状态" /> </LinearLayout>
JAVA文件
package com.example.popupwindow; import android.app.Activity; import android.os.Bundle; import android.view.Gravity; import android.view.LayoutInflater; import android.view.View; import android.view.View.OnClickListener; import android.widget.Button; import android.widget.PopupWindow; import android.widget.RadioButton; import android.widget.RadioGroup; import android.widget.RadioGroup.OnCheckedChangeListener; import android.widget.TextView; public class MainActivity extends Activity { private Button popbut = null; // 按钮组件 private RadioGroup changestatus = null; // 单选钮组件 private TextView statusinfo = null; // 文本显示组件 private Button cancel = null; // 按钮组件 private PopupWindow popWin = null; // 弹出窗口 private View popView = null; // 保存弹出窗口布局 @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); super.setContentView(R.layout.main); // 设置布局管理器 this.popbut = (Button) super.findViewById(R.id.popbut); // 取得组件 this.statusinfo = (TextView) super.findViewById(R.id.statusinfo); // 取得组件 this.popbut.setOnClickListener(new OnClickListenerImpl()); // 设置单击事件 } private class OnClickListenerImpl implements OnClickListener { // 设置监听 @Override public void onClick(View view) { LayoutInflater inflater = LayoutInflater .from(MainActivity.this); // 取得LayoutInflater对象 MainActivity.this.popView = inflater.inflate( R.layout.popwindow, null); // 读取布局管理器 MainActivity.this.popWin = new PopupWindow(popView, 300, 220, true); // 实例化PopupWindow MainActivity.this.changestatus = (RadioGroup) popView .findViewById(R.id.changestatus); // 取得组件 MainActivity.this.cancel = (Button) popView .findViewById(R.id.cancel); // 取得组件 MainActivity.this.changestatus .setOnCheckedChangeListener( new OnCheckedChangeListenerImpl()); // 设置监听 MainActivity.this.cancel .setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { MainActivity.this.popWin.dismiss(); // 关闭弹出窗口 } }); MainActivity.this.popWin.showAtLocation( MainActivity.this.popbut, Gravity.CENTER, 0, 0); // 显示弹出窗口 } } private class OnCheckedChangeListenerImpl implements OnCheckedChangeListener { // 选项选中时触发 @Override public void onCheckedChanged(RadioGroup group, int checkedId) { RadioButton but = (RadioButton) MainActivity.this.popView .findViewById(group.getCheckedRadioButtonId()); // 取得选中组件 MainActivity.this.statusinfo.setText("当前用户状态:" + but.getText().toString()); // 设置文本 MainActivity.this.popWin.dismiss(); // 关闭弹出窗口 } } }
android基本控件介绍到这里基本就结束了,后续还会有其他的一些组件,会在用到的时候给大家进行具体的讲解
从零开始学android<popupwindow弹出式窗口.三十四.>
标签:风飞雪未扬 从零开始学android android弹出菜单 popwindow
原文地址:http://blog.csdn.net/u013616976/article/details/38843535