我有一个简单的WebView在Android上运行Web应用程序.问题是当我旋转手机将其更改为横向webview重新加载并返回到开头时.
我该如何阻止这个动作?
罗恩
更新到 Androis Studio 4.0 后,我收到了一条android.viewBinding.enabled已弃用的警告,应该将 lbe 替换为android.buildFeatures.viewBinding.
我因此改变了我的适当部分build.gradle (app):
android {
...
viewBinding {
enable = true
}
...
}
Run Code Online (Sandbox Code Playgroud)
到:
android {
...
buildFeatures {
viewBinding {
enabled true
}
}
...
}
Run Code Online (Sandbox Code Playgroud)
我不再收到警告,但仍然在我的构建窗口中收到一个信息框,如下所示:
build.gradle: DSL element 'android.viewBinding.enabled' is obsolete and has been replaced with 'android.buildFeatures.viewBinding'.
It will be removed in version 5.0 of the Android Gradle plugin.
这是正常的吗?我知道这不是警告或错误,但告诉我一些已经修复的东西似乎很奇怪 - 或者我没有正确修复它(我的应用程序仍然按预期使用 viewBinding 工作)。
(另请注意,将buildFeatures部分添加到文件时,不会buildFeatures在自动完成提示中弹出任何所需的内容,包括弹出。)
我继续回到这个问题,并继续以失败告终。
我已经阅读了数十页的说明,并查看了诸如“ 如何使Firefox扩展工具栏按钮自动出现?”之类的答案。在这里,但我做对了。
我了解我需要做的事情的概念,但是我要指出的是,虽然扩展本身可以正常工作,但是我无法init(运行)函数,并且似乎也未添加任何负载侦听器(I alert在window.top.addEventListener..代码之前和之后添加了s,但alerts均未触发。
我想要实现的是建议的过程,即在安装/更新时添加工具栏按钮,但仅在首次运行/安装时添加。
我的扩展包括:
chrome.manifest并install.rdf在扩展根目录中。chrome包含其它元素的文件夹(extensionName.js,extensionName.png,extensionName.xul,extensionName.css和icon.png)。prefs.js在defaults/preferences目录中。这包含extensions.MyExtensionNameButton.firstRunDone设置为的首选项false。该扩展本身可以完全按要求运行(它包括一个工具栏按钮和右键单击上下文菜单项)。
我的extensionName.js文件包含以下内容(实际的扩展功能在工作时会被修剪掉,并且可能会使问题变得太长):
objMyExtensionNameButton = {
// functions that are called by the .xul are in here,
init : function() {
var firstRunPref = "extensions.MyExtensionNameButton.firstRunDone";
alert("init function run");
if (!Application.prefs.getValue(firstRunPref)) {
Application.prefs.setValue(firstRunPref, true);
// all the rest …Run Code Online (Sandbox Code Playgroud) 我正在尝试编写一个“白痴证明”SQL 脚本,该脚本可由非 SQL 识字用户运行。
我的想法是在脚本顶部定义几个变量,然后根据这些变量运行特定查询。
我正在 mySQL 上进行测试,但它最终会在 SQL-Server 上运行。
在伪代码中,这就是我想要做的:
# Set matchThis to the value to match
SET @matchThis = "matchMe";
# Uncomment (remove the #) one of the two lines below to update or just view
#SET @update = "YES";
SET @update = "NO";
IF @update = "YES" {
UPDATE myTable SET myColumn = "changed" WHERE matchVal = @matchThis;
} ELSE {
SELECT * FROM myTable WHERE matchVal = @matchThis;
}
Run Code Online (Sandbox Code Playgroud)
如果有办法,我想完全在 SQL 中执行此操作。
我看过使用SELECT IF …
有没有办法检测用户何时在API v3下进入和退出Google地图中的StreetView?
我想在用户进入StreetView时触发现有的"隐藏菜单"功能(因为菜单不相关),然后在退出时重新显示菜单.
我正在尝试使用以下代码通过JavaScript将按钮值设置为«(或»):
document.getElementById('hideButton').value='«';
Run Code Online (Sandbox Code Playgroud)
这只是将按钮文本设置为«而不是«.
HTML标记工作正常(即<input type="button" value="«">)在按钮面上给出双左箭头引号.
是否有一些特殊的方法来逃避JavaScript中的&符号?
谢谢,
调频
我用来SharedPreferences存储用户设置/选项。
我添加了一个可以打开或关闭的新选项,因此希望将其存储在boolean我的共享首选项文件中。
null这一切都很好,但是,由于这是一个新选项,如果用户尚未明确设置该选项,我想将内部变量设置为(这样我可以在第一次运行新版本时提示他们选择)时间)。
以下内容不起作用,因为boolean如果首选项未在 中找到,则 getBoolean 期望原语作为默认值返回shared+prefs。
myNewSetting = shared_prefs.getBoolean("my_mew_setting",null);
Run Code Online (Sandbox Code Playgroud)
上面的myNewSettingaBoolean可以设置为,但是由于s 的要求,这null没有帮助。getBoolean
有没有办法解决?
我正在使用以下单元尝试读取 Lazarus 项目中的应用程序版本号,但 GetProductVersion 始终返回 0.0.0.0
http://forum.lazarus.freepascal.org/index.php?topic=13957
我在 Windows 7 上使用 Lazarus 1.2.4 和 FPC 2.6.4。
当我编译、链接和运行应用程序时,我没有收到任何错误,因此看来该单元已正确包含...
我不知道还能去哪里寻找不起作用的东西。有人可以给我一些指点吗?
我有一个WebView加载特定网页的应用程序。
该网页上有一个按钮,该按钮使用 JavaScript 调用 Android 活动中的方法以重新加载 WebView 中的 URL(有效地将 Web 应用程序重置为其默认状态)。
由于这里有几个线程,我已经让 Android 的所有 JavaScript 接口都可以正常工作,我可以弹出一个Toast来显示应用程序即将重新加载,但是我在 WebView.loadUrl() 调用中遇到错误如下。
java.lang.RuntimeException: java.lang.Throwable: A WebView method was called on thread 'JavaBridge'. All WebView methods must be called on the same thread. (Expected Looper Looper (main, tid 1) {1d015c84} called on Looper (JavaBridge, tid 122148) {33703881}, FYI main Looper is Looper (main, tid 1) {1d015c84})
Run Code Online (Sandbox Code Playgroud)
我猜这是因为执行重新加载的onCreate方法不在此活动的方法内,该方法执行所有其他操作,WebView但我不确定这是否真的是问题以及如何解决它- 因为重新加载 URL 的方法需要在 JavascripInterface 类中才能从网页中访问。
我正在改编来自三词地址的一些示例代码,以便通过 Java SDK 访问他们的 API。它使用 RXJava。
示例代码是:
Observable.fromCallable(() -> wrapper.convertTo3wa(new Coordinates(51.2423, -0.12423)).execute())
.subscribeOn(Schedulers.io())
.observeOn(AndroidSchedulers.mainThread())
.subscribe(result -> {
if (result.isSuccessful()) {
Log.i("MainActivity", String.format("3 word address: %s", result.getWords()));
} else {
Log.e("MainActivity", result.getError().getMessage());
}
});
Run Code Online (Sandbox Code Playgroud)
首先。这会在构建时给出弃用警告以及 IDE 警告 ( Result of 'Observable.subscribe()' is ignored)。
为了解决第一个问题,我Disposable myDisposable = 在Observable. 它是否正确?(添加位置见下文)
接下来,我需要添加超时,以便在请求超时时可以显示警告等。为此,我已添加.timeout(5000, TimeUnit.MILLISECONDS)到构建器中。
timeout这是可行的,但s 似乎对 s 起作用的方式Observable是它们抛出异常,而我不知道如何捕获和处理该异常。
我现在拥有的是:
Disposable myDisposable = Observable.fromCallable(() -> wrapper.convertTo3wa(new Coordinates(51.2423, -0.12423)).execute())
.subscribeOn(Schedulers.io())
.observeOn(AndroidSchedulers.mainThread())
.timeout(5000, TimeUnit.MILLISECONDS)
.subscribe(result -> {
if (result.isSuccessful()) …Run Code Online (Sandbox Code Playgroud) 我试图在PHP中检查正或负浮点数或整数值,但我无法弄清楚为什么我的正则表达式总是评估为真.
这是代码:
if ( preg_match('/-?[\d]*\.?[\d]*/', "1.57a") ) {
echo "OK: matches";
} else {
echo "Bad: doesn't match";
exit();
}
Run Code Online (Sandbox Code Playgroud)
我已经在几个测试器中测试了regexp模式,并且根据需要匹配和不匹配,但上面的代码/ always /返回1.
我猜这是非常明显的,但我找不到它.
android ×4
java ×3
javascript ×3
build.gradle ×1
firefox ×1
freepascal ×1
google-maps ×1
html ×1
lazarus ×1
mysql ×1
php ×1
preg-match ×1
regex ×1
rx-java ×1
rx-java2 ×1
rx-java3 ×1
sql ×1
sql-server ×1
toolbar ×1
version ×1
webview ×1
windows-7 ×1
xul ×1