Android 用PopupWindow實現彈出警告框的複用類
轉載請標明出處:http://blog.csdn.net/wangtaocsdn/article/details/71330670
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,以後使用只需要簡單呼叫幾句程式碼就好了!
相關文章
- javascript實現點選彈出確認刪除警告框程式碼JavaScript
- ios 仿android的popupwindow彈出選單iOSAndroid
- 第 16 章 彈出框和警告框外掛
- Flutter | 超實用簡單選單彈出框 PopupMenuButtonFlutter
- 實現彈框的樣式
- 點選提交按鈕實現彈出警告框表單驗證效果
- html + css + js 原生 彈出提示框的實現HTMLCSSJS
- 使用easydrag實現可拖動的DIV彈出框
- js實現的警告框例項程式碼JS
- swift實現仿知乎搖一搖彈出框Swift
- 基於HTML5 Canvas 實現彈出框HTMLCanvas
- android中popupwindow彈出後,螢幕背景變成半透明Android
- Android自定義PopupWindow仿qq加好友彈框和IOS第三方AndroidiOS
- Android Dialog風格彈出框的ActivityAndroid
- Android基礎 PopupWindow實現漂亮的搜尋Android
- Android彈窗二則: PopupWindow和AlertDialogAndroid
- Android彈窗二則:PopupWindow和AlertDialogAndroid
- 用Unity實現彈反效果Unity
- CSS滑鼠放在連結上出現彈出框CSS
- deeplink跳轉快應用返回出現兩次系統新增桌面的彈框
- java基礎-複用類-複用方式(2)Java
- 通用 PopupWindow,幾行程式碼搞定 PopupWindow 彈窗(續)行程
- 如何使用PHP彈出警告訊息框(示例詳解)PHP
- 用VB編寫一個彈出選單類 (轉)
- Android實現人人網點選“+”彈出效果Android
- ocx控制元件避免彈出警告的類–2控制元件
- android實現底部彈出框與軟鍵盤衝突(全面屏虛擬鍵適配)Android
- Android懸浮框的實現Android
- 線上直播系統原始碼,彈出警告/提示類彈窗原始碼
- IO多路複用——深入淺出理解select、poll、epoll的實現
- javascript實現的點選彈出刪除提示框程式碼例項JavaScript
- bootstrap提示和彈出框boot
- 自定義popup彈出框
- nginx 實現實用的灰度釋出Nginx
- 用css實現自定義虛線邊框CSS
- 如何實現React元件的可複用性React元件
- 實現物件的複用——享元模式(五)物件模式
- 實現物件的複用——享元模式(四)物件模式