alert中添加表格_Android app 应用内任意页面的alert弹窗实现方案

原创不易,请多多支持!对软件技术感兴趣的童鞋请关注我,后续技术分享更精彩。

效果

实现效果如图。

通过activity构建弹框,可在应用中任何页面提示。

cb868d95cd05276fec6fd512d456c653.png

实现步骤

  1. 新建空白activity。
  2. activity中闹铃弹框实现。
  3. manifest添加权限。
  4. 样式调整。

代码

android studio 包路径右键,新建空白activity模板,命名AlertAlarmClockActivity。

修改AlertAlarmClockActivity类。

public class AlertAlarmClockActivity extends AppCompatActivity {@Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        //隐藏title        requestWindowFeature(Window.FEATURE_NO_TITLE); // hide title        //屏蔽自动生成的布局UI,后面通过代码构建//        setContentView(R.layout.activity_alert_alarm_clock);        //屏蔽点击弹框外延,关闭弹框功能        setFinishOnTouchOutside(false);      //弹框窗口属性设置。设置弹框在其他界面之上        Window win = getWindow();        WindowManager.LayoutParams winParams = win.getAttributes();        if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {            winParams.type = WindowManager.LayoutParams.TYPE_APPLICATION_OVERLAY;        }else{            winParams.type = WindowManager.LayoutParams.TYPE_SYSTEM_ALERT;        }       //弹框窗口在锁屏状态下可见        winParams.flags |= (WindowManager.LayoutParams.FLAG_DISMISS_KEYGUARD                | WindowManager.LayoutParams.FLAG_SHOW_WHEN_LOCKED                | WindowManager.LayoutParams.FLAG_ALLOW_LOCK_WHILE_SCREEN_ON | WindowManager.LayoutParams.FLAG_TURN_SCREEN_ON);        //创建弹框        createDialog();    }}  

onCreate方法中实现参数定制和弹框构建逻辑。详见注释说明。

弹框构建逻辑createDialog()如下:

private void createDialog() {    String taskMsg = "你使用闹钟时间到了!!!";    AlertDialog dialog = new AlertDialog.Builder(this)            .setIcon(R.drawable.flutter_app_icon)            .setTitle("任务提醒")            .setCancelable(false)            .setMessage(taskMsg)            .setPositiveButton("确 认", (dlg, whichButton) -> {                finish();            }).create();    dialog.show();    //button 置中    Button positiveButton = dialog.getButton(AlertDialog.BUTTON_POSITIVE);    LinearLayout.LayoutParams positiveButtonLL =(LinearLayout.LayoutParams)positiveButton.getLayoutParams();    positiveButtonLL.gravity = Gravity.CENTER;    positiveButtonLL.width = ViewGroup.LayoutParams.MATCH_PARENT;    positiveButton.setLayoutParams(positiveButtonLL);}

注意:Android各版本兼容问题,activity实现类和AlertDialog请使用以下包。

import androidx.appcompat.app.AlertDialog;import androidx.appcompat.app.AppCompatActivity;

添加样式:{项目}appsrcmainesvaluesstyles.xml文件添加样式。

manifest文件通过android:theme属性添加对应样式引用。

AppCompatActivity有对应的适配样式,不添加可能导致运行报错。

 

manifest文件添加权限申明

总结

本文介绍了activity构建应用内任意界面上显示的弹框方法。通过继承AppCompatActivity类,并覆盖onCreate方法,可以快速实现alert弹窗效果。
该弹窗实际也可在其他应用界面之上展示,但有一个缺点,当点击系统回退或回到桌面键时,会被隐藏。真拿来做系统闹铃弹窗还有所缺陷。在应用内部任意页面弹框提示需求是完全没问题的。若想了解系统层面的闹铃弹框实现,请关注我后续文章分享。

刚开始学习Android端应用,了解尚浅。存在很多不足和待完善的地方。欢迎志同道合的朋友指正和探讨。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值