android弹窗警告,Android 开发使用PopupWindow实现弹出警告框的复用类示例

本文实例讲述了Android 开发使用PopupWindow实现弹出警告框的复用类。分享给大家供大家参考,具体如下:

Android开发中相信下图所示界面大家都不陌生,该种弹出框的使用频率也是极高的,所以我专门谢了个类用于方便的弹出该界面。并把确定或取消后的逻辑通过抽象方法的方式让用户自己实现,大大提高了开发效率。下面是该类:

e6c2ee79754280de0940f501e9b05626.png

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代码如下:

android:layout_width="match_parent"

android:layout_height="match_parent"

android:background="@android:color/white"

android:orientation="vertical">

android:id="@+id/tv_pop_text"

android:layout_width="match_parent"

android:layout_height="wrap_content"

android:layout_weight="1"

android:gravity="center"/>

android:layout_width="match_parent"

android:layout_height="1px"

android:background="@android:color/darker_gray"/>

android:layout_width="match_parent"

android:layout_height="wrap_content"

android:orientation="horizontal">

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"/>

android:layout_width="1px"

android:layout_height="match_parent"

android:background="@android:color/darker_gray"/>

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"/>

下面简单的使用一下:在界面放一个按钮,按钮点击后弹出警告框。代码如下:

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();

}

});

}

}

即如下效果:

e6c50d8b2c6d9dad2f28571b4291939f.gif

So,以后使用只需要简单调用几句代码就好了!

希望本文所述对大家Android程序设计有所帮助。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值