时间:2021-05-21
本文实例讲述了Android 开发使用PopupWindow实现弹出警告框的复用类。分享给大家供大家参考,具体如下:
Android开发中相信下图所示界面大家都不陌生,该种弹出框的使用频率也是极高的,所以我专门谢了个类用于方便的弹出该界面。并把确定或取消后的逻辑通过抽象方法的方式让用户自己实现,大大提高了开发效率。下面是该类:
package com.***.popupwindow;import ******;public abstract class MyPopupWindow { private PopupWindow popupWindow; private Activity context; private String content; private String positiveWord = "确定"; private String negativeWord = "取消"; /** * 构造函数 * * @param context */ public MyPopupWindow(Activity context) { this.context = context; } /** * 显示警示框 */ public void show() { View popView = View.inflate(context, R.layout.popup, null); popupWindow = new PopupWindow(context); popupWindow.setHeight(400); popupWindow.setWidth(700); popupWindow.setOutsideTouchable(true); popupWindow.setFocusable(true); popupWindow.setContentView(popView); popupWindow.showAtLocation(context.getWindow().getDecorView(), Gravity.CENTER, 0, 0); TextView tv_pop_text = (TextView) popView.findViewById(R.id.tv_pop_text); tv_pop_text.setText(content); Button bt_pop_sure = (Button) popView.findViewById(R.id.bt_pop_sure); bt_pop_sure.setText(positiveWord); bt_pop_sure.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { sureClick(); } }); Button bt_pop_cancel = (Button) popView.findViewById(R.id.bt_pop_cancel); bt_pop_cancel.setText(negativeWord); bt_pop_cancel.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { cancelClick(); } }); } /** * 确定键按下后执行 */ public abstract void sureClick(); /** * 取消键按下后执行 */ public abstract void cancelClick(); /** * 为警示设置警示内容 * * @param content */ public void setContent(String content) { this.content = content; } /** * 设置确定键文字 * * @param positiveWord */ public void setPositiveWord(String positiveWord) { this.positiveWord = positiveWord; } /** * 设置取消键文字 * * @param negativeWord */ public void setNegativeWord(String negativeWord) { this.negativeWord = negativeWord; } /** * 手动取消警示框 */ public void dismiss() { popupWindow.dismiss(); }}其中弹出框用到的布局popup.xml代码如下:
<?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" android:background="@android:color/white" android:orientation="vertical"> <TextView android:id="@+id/tv_pop_text" android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_weight="1" android:gravity="center"/> <TextView android:layout_width="match_parent" android:layout_height="1px" android:background="@android:color/darker_gray"/> <LinearLayout android:layout_width="match_parent" android:layout_height="wrap_content" android:orientation="horizontal"> <Button android:id="@+id/bt_pop_sure" android:layout_width="wrap_content" android:layout_height="wrap_content" android:background="@android:color/transparent" android:layout_weight="1"/> <TextView android:layout_width="1px" android:layout_height="match_parent" android:background="@android:color/darker_gray"/> <Button android:id="@+id/bt_pop_cancel" android:layout_width="wrap_content" android:layout_height="wrap_content" android:background="@android:color/transparent" android:layout_weight="1"/> </LinearLayout></LinearLayout>下面简单的使用一下:在界面放一个按钮,按钮点击后弹出警告框。代码如下:
package com.toprs.popupwindow;import android.graphics.Color;import android.graphics.drawable.ColorDrawable;import android.support.v7.app.AppCompatActivity;import android.os.Bundle;import android.util.AttributeSet;import android.view.Gravity;import android.view.LayoutInflater;import android.view.View;import android.view.ViewGroup;import android.widget.ArrayAdapter;import android.widget.Button;import android.widget.ListView;import android.widget.PopupWindow;import android.widget.SeekBar;import android.widget.Toast;public class MainActivity extends AppCompatActivity { private PopupWindow popupWindow; private Button button; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); button = (Button) findViewById(R.id.button); button.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { MyPopupWindow myPopupWindow = new MyPopupWindow(MainActivity.this) { @Override public void sureClick() { Toast.makeText(MainActivity.this, "确定", Toast.LENGTH_SHORT).show(); } @Override public void cancelClick() { Toast.makeText(MainActivity.this, "取消", Toast.LENGTH_SHORT).show(); } }; myPopupWindow.setContent("确定退出?"); myPopupWindow.show(); } }); }}即如下效果:
So,以后使用只需要简单调用几句代码就好了!
更多关于Android相关内容感兴趣的读者可查看本站专题:《Android控件用法总结》、《Android开发入门与进阶教程》、《Android视图View技巧总结》、《Android编程之activity操作技巧总结》、《Android数据库操作技巧总结》及《Android资源操作技巧汇总》
希望本文所述对大家Android程序设计有所帮助。
声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。
本文实例讲述了javascript实现复选框超过限制即弹出警告框的方法。具体实现方法如下:javascript实现复选框超过限制即弹出警告框的方法请最多选择
PopupWindow使用PopupWindow这个类用来实现一个弹出框,可以使用任意布局的View作为其内容,这个弹出框是悬浮在当前activity之上的。P
本文实例讲述了C#实现的JS操作类。分享给大家供大家参考。具体如下:这个C#类封装了常用的JS客户端代码操作,包括弹出对话框、返回上一页,通过JS转向,弹出警告
本文实例讲述了JavaScript使用setTimeout实现延迟弹出警告框的方法。分享给大家供大家参考。具体如下:下面的代码执行后点击按钮会延迟3秒钟弹出一个
本文实例讲述了C#实现在前端网页弹出警告对话框(alert)的方法。分享给大家供大家参考。具体如下:通常我们通过JS生成警告对话框,下面的代码可以帮助你在点击r