首页 > 代码库 > 从零开始学android<popupwindow弹出式窗口.三十四.>
从零开始学android<popupwindow弹出式窗口.三十四.>
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弹出式窗口.三十四.>
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。