小编Jam*_*ton的帖子

Android:制作全屏应用程序

我可以对最新版本的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)

android android-theme android-fullscreen

41
推荐指数
8
解决办法
13万
查看次数

在Angular 2中导入界面

在使用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)

我应该如何声明和导入类型,以便它们可以在多个地方使用?

interface typescript angular

11
推荐指数
2
解决办法
3万
查看次数

如何正确配置meteor以使用节点文件上传模块'multer'

我刚刚开始使用流星.

我找到了,并添加了'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中的等效服务器代码是什么?

node.js meteor multer

10
推荐指数
1
解决办法
560
查看次数

更改Wi-Fi配置文件的密码

在我自愿服务的长期护理医院,每个月的第一天,访客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)

passwords batch-file wifi

9
推荐指数
1
解决办法
4023
查看次数

使用nvm卸载当前活动的node.js版本

在Ubuntu 16.04上,我错误地使用root来安装nvm,然后通过nvm安装node.js 8.8.1.我也用过nvm alias default 8.8.1,认为它会纠正我的错误.

现在我想:

  1. 删除默认别名
  2. 卸载节点8.8.1
  3. 卸载与节点一起出现的npm 4.8.5
  4. 卸载nvm
  5. 为正确的非sudo用户正确重新安装所有内容

看起来我已经成功完成了第一部分:

# 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?

uninstall node.js npm nvm

9
推荐指数
3
解决办法
2万
查看次数

Neo4J:命令失败:未设置初始密码,因为检测到实时Neo4j用户

在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)

怎么可能?如何设置初始密码?

passwords neo4j ubuntu-16.04

9
推荐指数
2
解决办法
4205
查看次数

强制CSS的解决方法:转换后悬停以更新(打开菜单)

解决这个问题已经有几个问题了.我包括我有两个原因:

  • 它提出了一种可能的替代方案
  • 演示代码可能对想要模拟菜单的其他人有用

在a之后CSS transition,用户必须在鼠标下方的元素注意到它处于某种:hover状态之前移动鼠标.我创建了一个菜单式功能,可以打开以显示不同的选项.打开过渡结束时鼠标下的选项与过渡开始时鼠标下的选项不同.因此,我必须找到一种解决方法.

你可以在这里找到一个jsFiddle和下面的演示源.寻找替代方法(在三个地方)看看我做了什么.

要查看此问题,请将鼠标移到菜单上,然后将其保留在原位,而不移动它.浏览器认为的列表项:hover将显示为蓝色.我的解决方法li:hoverli.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)

html javascript css events

8
推荐指数
1
解决办法
1311
查看次数

正则表达式只捕获文件名(没有网址路径,没有扩展名)

在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中.

javascript regex

7
推荐指数
1
解决办法
1324
查看次数

FFMPEG:创建静音.ogg音频文件

在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.wav

MP3中60秒无声音频:

ffmpeg -ar 48000 -t 60 -f s16le -acodec pcm_s16le -ac 2 -i /dev/zero -acodec libmp3lame -aq 4 output.mp3

我怎么能做类似的事情来创建一个无声的.ogg音频文件?

对于Web应用程序,我想创建一个非常短的文件,用于测试浏览器是否会预加载音频文件,或者是否会等到文件实际播放后再开始流式传输.

audio ffmpeg ogg

7
推荐指数
2
解决办法
6660
查看次数

检测触摸屏设备上虚拟键盘的打开或关闭

我对这个问题有一个不太优雅的解决方法,我希望其他人可能已经有了更强大的解决方案。


在触摸屏上,点击可编辑文本字段将弹出屏幕键盘,这将改变可用的屏幕空间量。如果不加以处理,这可能会隐藏关键元素,或将页脚推到适当的位置。

在笔记本电脑或台式计算机上,打开可编辑文本字段不会造成此类布局更改。

在我当前的项目中,我想确保即使虚拟键盘打开时某些关键项目也是可见的,因此我需要检测何时发生此类更改。然后,我可以向body元素添加一个类,以更改布局以适应键盘的存在。

在网上搜索现有的解决方案时,我发现:

  1. 没有完美的方法可以知道您的代码是否在移动设备上运行
  2. 有些非移动设备具有触摸屏,也可能具有键盘
  3. 焦点元素可能不可编辑
  4. contentEditableelements 将打开屏幕键盘
  5. 地址栏可能会在虚拟键盘出现的同时决定重新出现并占用必要的屏幕空间,从而进一步挤压可用空间。

我已在下面发布了我提出的解决方案。它依赖于检测键盘焦点变化后一秒内窗口高度的变化。我希望您能提出更好的解决方案,并且已经过跨平台、跨浏览器和跨设备的测试。


我已经在 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)

javascript keyboard android event-handling ios

7
推荐指数
2
解决办法
1万
查看次数