从零开始学android<popupwindow弹出式窗口.三十四.>

来源:互联网 发布:python namespace 编辑:程序博客网 时间:2024/06/05 17:44

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"><TextViewandroid:id="@+id/popinfo"android:text="请选择您的当前状态:"android:layout_width="wrap_content"android:textSize="20px"android:layout_height="wrap_content"/><RadioGroupandroid:id="@+id/changestatus"android:layout_width="wrap_content"android:layout_height="wrap_content"android:orientation="vertical"android:checkedButton="@+id/online"><RadioButtonandroid:id="@+id/online"android:text="在线"/><RadioButtonandroid:id="@+id/offline"android:text="离线"/><RadioButtonandroid: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; // 保存弹出窗口布局@Overridepublic 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 {// 设置监听@Overridepublic 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);// 实例化PopupWindowMainActivity.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() {@Overridepublic void onClick(View v) {MainActivity.this.popWin.dismiss(); // 关闭弹出窗口}});MainActivity.this.popWin.showAtLocation(MainActivity.this.popbut, Gravity.CENTER, 0, 0);// 显示弹出窗口}}private class OnCheckedChangeListenerImpl implementsOnCheckedChangeListener {// 选项选中时触发@Overridepublic 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基本控件介绍到这里基本就结束了,后续还会有其他的一些组件,会在用到的时候给大家进行具体的讲解




0 0