博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
crosswalk使用--AlertDialog.Builder弹窗--返回键弹窗、prompt弹窗
阅读量:5124 次
发布时间:2019-06-13

本文共 3825 字,大约阅读时间需要 12 分钟。

1.遗留问题:弹出窗口关闭后整个屏幕亮度非常高,一段时间后才会恢复。

2.遇到的问题:使用 import android.support.v7.app.AlertDialog 弹窗就闪退。

 

返回键
通过重写dispatchKeyEvent函数修改返回键事件

 

package com.example.lyj.crosswalk;import android.app.Activity;import android.app.AlertDialog;import android.content.DialogInterface;import android.os.Bundle;import android.view.KeyEvent;import org.xwalk.core.XWalkView;public class MainActivity extends Activity{    @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_main);        AndroidBug5497Workaround.assistActivity(this);        XWalkView xWalkView = findViewById(R.id.web);        xWalkView.loadUrl("file:///android_asset/index.html");    }    @Override    public boolean dispatchKeyEvent(KeyEvent event) {        if (event.getKeyCode() == KeyEvent.KEYCODE_BACK                 && 0 == event.getRepeatCount()                 && event.getAction() == KeyEvent.ACTION_DOWN){            new AlertDialog.Builder(MainActivity.this)                    .setTitle("退出确定")                    .setMessage("是否确定退出?")                    .setPositiveButton("确定退出", new DialogInterface.OnClickListener() {                        @Override                        public void onClick(DialogInterface dialogInterface, int i) {                            finish();                        }                    })                    .setNegativeButton("取消退出", new DialogInterface.OnClickListener() {                        @Override                        public void onClick(DialogInterface dialogInterface, int i) {                        }                    })                    .create()                    .show();            return false;        }        return super.dispatchKeyEvent(event);    }}

  

 
prompt监听
 重写onJsPrompt函数,自定义弹出窗口样式和内容
xWalkView.setUIClient(new XWalkUIClient(xWalkView){            @Override            public boolean onJsPrompt(XWalkView view, String url, String message, final String defaultValue, final XWalkJavascriptResult result) {                AlertDialog.Builder builder = new AlertDialog.Builder(MainActivity.this);                final EditText editText = new EditText(MainActivity.this);                Uri uri = Uri.parse(message);                editText.setText(defaultValue);                if(uri.getAuthority().equals("serverAddr")) {                    builder.setTitle("请输入服务器地址").setView(editText);                } else if(uri.getAuthority().equals("operator")) {                    builder.setTitle("请输入运营商信息").setView(editText);                } else {                    builder.setTitle("error");                }                builder.setPositiveButton("输入确认", new DialogInterface.OnClickListener() {                    @Override   //确认键处理                    public void onClick(DialogInterface dialogInterface, int i) {                        result.confirmWithResult(editText.getText().toString());                    }                });                builder.setNegativeButton("取消输入", new DialogInterface.OnClickListener() {                    @Override   //取消键处理                    public void onClick(DialogInterface dialogInterface, int i) {                        result.confirmWithResult(defaultValue);                    }                });                builder.setOnKeyListener(new DialogInterface.OnKeyListener() {                    @Override   //返回键处理                    public boolean onKey(DialogInterface dialogInterface, int i, KeyEvent keyEvent) {                        if(KeyEvent.KEYCODE_BACK == i)                            return true;    //返回键拦截                        return false;       //其他键直接返回                    }                });                builder.show();                return true;            }        });

  

转载于:https://www.cnblogs.com/liuyj-vv/p/9662047.html

你可能感兴趣的文章
机房收费系统之结账
查看>>
Linux学习之基本介绍
查看>>
dropify,不错的图片上传预览插件
查看>>
Spring各jar包的作用(转载)
查看>>
SVG_text.动态创建&换行显示(横)
查看>>
C#生成新浪微博短网址 示例源码
查看>>
JAVA读写文件
查看>>
缓存过期时间的设置
查看>>
Java中带标签的break,continue
查看>>
vtun中setsockopt fcntl等有关套接字设置
查看>>
LPC1768的SPI通讯
查看>>
基础Network Request
查看>>
206. Reverse Linked List
查看>>
C#生成DLL文件
查看>>
Zabbix Server设置主机监控
查看>>
[译]Javascript中的闭包(closures)
查看>>
php注释规范
查看>>
着陆攻击LAND Attack
查看>>
Xamarin XAML语言教程构建进度条ProgressBar
查看>>
iOS 9应用开发教程之iOS 9新特性
查看>>