我可以对最新版本的Android Studio创建的新空白活动进行最简单的更改,以使应用程序全屏显示?
我想创建一个全屏Android应用程序.我正在使用Android Studio. 这篇文章建议我添加一行如...
android:theme="@android:style/Theme.Holo.Light.NoActionBar.Fullscreen"
...到AndroidManifest.xml文件,如下所示:
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.lexogram.james.blackslate" >
<application
android:allowBackup="true"
android:icon="@drawable/ic_launcher"
android:label="@string/app_name"
android:theme="@style/AppTheme" >
<activity
android:name="com.lexogram.james.blackslate.MainActivity"
android:label="@string/app_name"
android:theme="@android:style/Theme.Holo.Light.NoActionBar.Fullscreen">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
</application>
</manifest>
Run Code Online (Sandbox Code Playgroud)
当我这样做时,应用程序编译但在启动时崩溃.如果我删除该行,该应用程序运行正常,但使用操作栏和标题栏,其他用户也会注意到.
这是我第一次尝试创建Android应用程序,因此我的应用程序几乎不会改变原始的Hello World示例.
编辑:我创建了一个新项目,并对其进行了一次更改.以下是错误日志的摘录:
FATAL EXCEPTION: main
java.lang.RuntimeException: Unable to start activity ComponentInfo{com.lexogram.james.test/com.lexogram.james.test.MainActivity}: java.lang.IllegalStateException: You need to use a Theme.AppCompat theme (or descendant) with this activity.
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2669)...
Run Code Online (Sandbox Code Playgroud)
注意:我正在测试旧的三星SGH-T499Y,运行Android 2.2(Froyo)
在使用Angular 2的Meteor应用程序中,我想创建一个自定义数据类型,如下所示:
interface MyCustomType {
index: number;
value: string;
}
Run Code Online (Sandbox Code Playgroud)
然后我想在多个文件中使用此自定义类型.我尝试创建一个名为"mycustom.type.ts"的单独文件,其中包含以下内容:
export interface MyCustomType {
index: number;
value: string;
}
Run Code Online (Sandbox Code Playgroud)
然后我尝试导入此类型,以便它可以在另一个文件中使用:
import MyCustomType from "./mycustom.type"
Run Code Online (Sandbox Code Playgroud)
但是,Atom报告以下错误:
TS Error File '/.../mycustom.type.ts' is not a module ...
Run Code Online (Sandbox Code Playgroud)
我应该如何声明和导入类型,以便它们可以在多个地方使用?
我刚刚开始使用流星.
我找到了,并添加了'multer'包:
meteor add pfafman:multer
Run Code Online (Sandbox Code Playgroud)
现在,我想知道如何配置meteor的服务器端使用.
在我的普通节点应用程序中,我使用它像这样:
app.use(multer({ dest: './uploads/',
rename: function (fieldname, filename) {
return filename+Date.now();
},
onFileUploadStart: function (file) {
console.log(file.originalname + ' is starting ...');
},
onFileUploadComplete: function (file) {
console.log(file.fieldname + ' uploaded to ' + file.path);
var fileName = file.name;
var done=true;
}
}));
Run Code Online (Sandbox Code Playgroud)
Meteor中的等效服务器代码是什么?
在我自愿服务的长期护理医院,每个月的第一天,访客Wi-Fi连接的密码会发生变化.这给员工带来了很多工作,给患者带来了很多挫折感,其中许多人的行动能力非常有限.
(是的,真正的解决方案是让IT团队保持相同的密码,但这不会发生).
大多数患者通过Windows笔记本电脑连接到外部世界.我想创建一个我们可以在他们的计算机上安装的批处理脚本,它将自动检索下个月的密码并在需要时立即应用它.
我可以将下个月的访客密码放在医院内部网络的一个文件中,只有当前拥有本月密码的人才能访问该密码,我可以bitsadmin在批处理脚本中使用该密码来检索本地文件的密码(见下文) ).我可以在每个病人的计算机上设置一个任务,以便在月末之前运行该脚本.
我的问题是:当上个月的密码在新月开始时失败时,如何从批处理脚本更改该网络连接的密码?
我知道我可以用......
netsh wlan show profile name=“INSERT_SSID_HERE” key=clear
Run Code Online (Sandbox Code Playgroud)
...找到当前密码,但我该如何设置呢?
编辑:我发现在Windows Vista及更高版本中,Wi-Fi密码短语存储在XML文件中C:\ProgramData\Microsoft\Wlansvc\Profiles\Interfaces[Interface Guid].xml.它以以下格式显示:
- <sharedKey>
<keyType>passPhrase</keyType>
<protected>true</protected>
<keyMaterial> ** 400+ hexit number ** </keyMaterial>
</sharedKey>
Run Code Online (Sandbox Code Playgroud)
我猜测要更改密码,我需要使用适当的算法加密新密码并更新此XML文件.有没有可以用来自动执行此操作的命令?如果没有,我应该使用什么加密算法?
更简单的替代方法可能是删除加密:
<protected>false</protected>
<keyMaterial>plainTextPassword</keyMaterial>
Run Code Online (Sandbox Code Playgroud)
但是,当我尝试在重新启动计算机后重新启动Wi-Fi连接时,使用已经过这种方式修改的XML文件,连接失败.
优选不需要重启的解决方案.
用于检索密码的批处理脚本
@echo off
setlocal
set file=%~dp0result.txt
bitsadmin /reset
bitsadmin /create /download job
bitsadmin /addfile job http://example.com/password.html %file%
bitsadmin /resume job
timeout 5
bitsadmin /getstate job | find /i "TRANSFERRED" && goto :done
bitsadmin /cancel job
exit /b 1
:done …Run Code Online (Sandbox Code Playgroud) 在Ubuntu 16.04上,我错误地使用root来安装nvm,然后通过nvm安装node.js 8.8.1.我也用过nvm alias default 8.8.1,认为它会纠正我的错误.
现在我想:
看起来我已经成功完成了第一部分:
# nvm unalias default
Deleted alias default - restore it with `nvm alias "default" "8.8.1"`
Run Code Online (Sandbox Code Playgroud)
但是nvm拒绝卸载节点8.8.1,因为它是唯一安装的版本:
# nvm uninstall 8.8.1
nvm: Cannot uninstall currently-active node version, v8.8.1 (inferred from 8.8.1).
Run Code Online (Sandbox Code Playgroud)
我猜我首先需要取消激活节点8.8.1,但我看到输出中没有任何东西nvm --help看起来会这样做.
在重新正确安装所有内容之前,我需要采取哪些步骤从机器上完全删除node.js,npm和nvm?
在Ubuntu 16.04.3桌面上,我刚刚卸载并重新安装了Neo4j.我还没有开始.但是当我尝试设置初始密码时......
sudo neo4j-admin set-initial-password 1234
Run Code Online (Sandbox Code Playgroud)
...我得到这个输出:
command failed: initial password was not set because live Neo4j-users were detected.
Run Code Online (Sandbox Code Playgroud)
怎么可能?如何设置初始密码?
解决这个问题已经有几个问题了.我包括我有两个原因:
在a之后CSS transition,用户必须在鼠标下方的元素注意到它处于某种:hover状态之前移动鼠标.我创建了一个菜单式功能,可以打开以显示不同的选项.打开过渡结束时鼠标下的选项与过渡开始时鼠标下的选项不同.因此,我必须找到一种解决方法.
你可以在这里找到一个jsFiddle和下面的演示源.寻找替代方法(在三个地方)看看我做了什么.
要查看此问题,请将鼠标移到菜单上,然后将其保留在原位,而不移动它.浏览器认为的列表项:hover将显示为蓝色.我的解决方法li:hover用li.ignoreHover类来否决规则.为了使变通方法不可见,我可以简单地使用标准背景颜色.相反,我使用蓝色使问题可见.
我的问题:我注意到,按修改键(Caps,Caps lock,Ctrl,Option/ Alt,⌘在Mac上,...)也将迫使:hover状态更新.有没有办法将这样的事件发送到#menu元素?
(我这样做的尝试并没有成功,所以我更倾向于给你我的工作解决方案而不是一个可能无效的解决方法).
<!DOCTYPE html>
<html>
<head>
<style>
#menu {
position: relative;
background: #ccc;
display: inline-block;
}
#wrapper {
margin: 5px;
}
#logo {
width: 150px;
height: 50px;
border: 1px solid #000;
margin: 0px auto;
z-index: 10;
}
nav { …Run Code Online (Sandbox Code Playgroud) 在JavaScript中,我可以使用此正则表达式([^\/]+)(\.[^\.\/]+)$来捕获URL中的文件名.它适用于以下情况:
http://a.com/b/file.name.ext
http://a.com/b/file.name.ext#hash
http://a.com/b/file.name.ext?query
Run Code Online (Sandbox Code Playgroud)
但是如果没有扩展名则无法匹配:
没有比赛
http://a.com/b/filename
http://a.com/b/filename#hash
http://a.com/b/filename?query
Run Code Online (Sandbox Code Playgroud)
这个是正常的.第二个捕获组希望最后有一个.ext块.
如果我让第二个捕获组可选...
`([^\/]+)(\.[^\.\/]+)?$`
Run Code Online (Sandbox Code Playgroud)
...然后第一个捕获组变得贪婪,并包括.ext我不想要的结尾.正则表达式引擎如何考虑可选的第二组?如何使扩展名存在可选?
注意:此正则表达式不适用于具有以下结构的URL:
http://a.com/b/filename?query=a.b
http://a.com/b/filename.ext?query=a.b
Run Code Online (Sandbox Code Playgroud)
在我的情况下,点将永远不会出现在URL中.
在ubuntuforums.org 上回答"如何制作无声mp3或wav文件"的问题时, FakeOutdoorsman提供了以下方法:
使用FFmpeg的另一种方法.WAV中60秒的静音:
ffmpeg -ar 48000 -t 60 -f s16le -acodec pcm_s16le -ac 2 -i /dev/zero -acodec copy output.wavMP3中60秒无声音频:
ffmpeg -ar 48000 -t 60 -f s16le -acodec pcm_s16le -ac 2 -i /dev/zero -acodec libmp3lame -aq 4 output.mp3
我怎么能做类似的事情来创建一个无声的.ogg音频文件?
对于Web应用程序,我想创建一个非常短的文件,用于测试浏览器是否会预加载音频文件,或者是否会等到文件实际播放后再开始流式传输.
我对这个问题有一个不太优雅的解决方法,我希望其他人可能已经有了更强大的解决方案。
在触摸屏上,点击可编辑文本字段将弹出屏幕键盘,这将改变可用的屏幕空间量。如果不加以处理,这可能会隐藏关键元素,或将页脚推到适当的位置。
在笔记本电脑或台式计算机上,打开可编辑文本字段不会造成此类布局更改。
在我当前的项目中,我想确保即使虚拟键盘打开时某些关键项目也是可见的,因此我需要检测何时发生此类更改。然后,我可以向body元素添加一个类,以更改布局以适应键盘的存在。
在网上搜索现有的解决方案时,我发现:
contentEditableelements 将打开屏幕键盘我已在下面发布了我提出的解决方案。它依赖于检测键盘焦点变化后一秒内窗口高度的变化。我希望您能提出更好的解决方案,并且已经过跨平台、跨浏览器和跨设备的测试。
我已经在 GitHub 上创建了一个存储库。
您可以在这里测试我的解决方案。
在我的测试中,如果用户使用带有触摸屏、键盘和鼠标的计算机,并且首先使用鼠标(取消)选择可编辑元素,然后立即更改窗口高度,则可能会出现误报。如果您在计算机或移动设备上发现其他误报或漏报,请告诉我。
;(function (){
class Keyboard {
constructor () {
this.screenWidth = screen.width // detect orientation
this.windowHeight = window.innerHeight // detect keyboard change
this.listeners = {
resize: []
, keyboardchange: []
, focuschange: []
}
this.isTouchScreen = 'ontouchstart' in document.documentElement
this.focusElement = null
this.changeFocusTime = new Date().getTime()
this.focusDelay = 1000 // at least 600 ms is required
let …Run Code Online (Sandbox Code Playgroud)