小编Nit*_*mer的帖子

使用Play从java类访问application.conf属性!2.0

我想将一个对象添加到全局范围,为了构造它,我需要将它传递给文件的路径.我不想在源代码中硬编码文件路径,因此我想从application.conf获取该路径.

问题是我不知道如何从java类访问这些属性.我试过这个:

Configuration.root().getString("file.path")
Run Code Online (Sandbox Code Playgroud)

但它以NullPointerException结束.

假设我可以使用全局配置实例,我错了吗?谢谢.

java configuration playframework playframework-2.0

60
推荐指数
4
解决办法
5万
查看次数

如何定义键值对的Typescript Map.其中key是数字,value是对象数组

在我的angular2应用程序中,我想创建一个以数字为键并返回一个对象数组的地图.我目前正在以下列方式实施,但没有运气.我应该如何实现它,还是应该为此目的使用其他数据结构?我想使用地图,因为它可能很快?

宣言

 private myarray : [{productId : number , price : number , discount : number}];

priceListMap : Map<number, [{productId : number , price : number , discount : number}]> 
= new Map<number, [{productId : number , price : number , discount : number}]>();
Run Code Online (Sandbox Code Playgroud)

用法

this.myarray.push({productId : 1 , price : 100 , discount : 10});
this.myarray.push({productId : 2 , price : 200 , discount : 20});
this.myarray.push({productId : 3 , price : 300 , discount : 30});
this.priceListMap.set(1 , …
Run Code Online (Sandbox Code Playgroud)

arrays json typescript angular

38
推荐指数
3
解决办法
12万
查看次数

Swift使用可选的存储属性初始化Struct

我是一个Swift新手,我正试图使用​​具有可选属性的Structs.我已经做了很多搜索并得到了一些有效的东西,但它感觉非常低效,所以想知道是否有更好/更易于管理的方式来实现我的目标.

我想使用Structs来代表一家公司,但我事先并不知道任何特定业务可能具有哪些属性组合.这似乎意味着我必须为每个可能的参数组合创建一个init().

这是一个简化的例子(我有更多的属性):

import Foundation

struct Business {
    let name : String
    var web : String?
    var address: String?

    // just the business name
    init(busName: String) {
        self.name = busName
    }

    // business name + website
    init(busName: String, website: String) {
        self.name = busName
        self.web = website
    }

    // business name + address
    init(busName: String, address: String) {
        self.name = busName
        self.address = address
    }

    // business name + website + address
    init(busName: String, website: String, address: String) {
        self.name …
Run Code Online (Sandbox Code Playgroud)

ios swift

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

在尖括号"<>"中包含类的内容在TypeScript中是什么意思?

我是TypeScript的新手,我非常喜欢它,尤其是在Javascript中进行OOP是多么容易.然而,在使用尖括号时,我仍然试图找出语义.

从他们的文档中,我看到了几个例子

interface Counter {
    (start: number): string;
    interval: number;
    reset(): void;
}

function getCounter(): Counter {
    let counter = <Counter>function (start: number) { };
    counter.interval = 123;
    counter.reset = function () { };
    return counter;
}
Run Code Online (Sandbox Code Playgroud)

interface Square extends Shape, PenStroke {
    sideLength: number;
}

let square = <Square>{};
Run Code Online (Sandbox Code Playgroud)

我无法理解这究竟意味着什么或想到/理解它的方式.

有人可以向我解释一下吗?

brackets typescript

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

Android 4.2.1,WebView和javascript界面​​中断

我有一个添加了javascript界面​​的webview,在大多数设备上都能正常运行,除了那些运行Android 4.2.1的设备.

我删除了大部分代码,并保留了一个非常基本的代码:

this.webView.getSettings().setJavaScriptEnabled(true);
this.webView.setWebChromeClient(new WebChromeClient());
this.webView.addJavascriptInterface(new Object() {
    public void handshake() {
        Log.d("JS", "handshake no params");
    }

    public void handshake(String json) {
        Log.d("JS", "handshake with params: " + json);
    }
}, "Android");
Run Code Online (Sandbox Code Playgroud)

在javascript方面,测试代码如下所示:

Android.handshake();
Run Code Online (Sandbox Code Playgroud)

但是我在logcat中得到了这个:

E/Web控制台:未捕获TypeError:对象[对象对象]没有方法'握手'

同样,在我测试过的较旧的android os(<4.2.1)(最小版本为2.3.3)的设备中,这同样适用.

奇怪的是,如果我开始一个全新的项目,除了一个只有一个WebView的Activity,使用相同的代码,一切都可以正常工作,即使对于4.2.1,但当它是我的实际项目的一部分,事情中断.我正在使用的webview没有做任何事情,我提供的代码片段中没有包含这些内容.

对我来说最奇怪的是,javascript找到了Android对象,但它只是没有请求的方法(握手),怎么会这样呢?

任何帮助将不胜感激,因为这在过去的两周左右让我疯狂(这是一个我一直回去的错误,然后放弃等等).谢谢.

javascript android webview

34
推荐指数
1
解决办法
3万
查看次数

在Play中路由到静态文件!2.0

我正在尝试建立一个特定静态文件的路由,但我正在尝试的所有内容都以错误结束.

我做了3次不同的尝试:

1.

GET /file   staticFile:/public/html/file.html
Run Code Online (Sandbox Code Playgroud)

我得到的错误:

Compilation error
string matching regex `\z' expected but `:' found
Run Code Online (Sandbox Code Playgroud)

2.

GET /file   controllers.Assets.at(path="/public/html", "file.html")
Run Code Online (Sandbox Code Playgroud)

我得到的错误:

Compilation error
Identifier expected
Run Code Online (Sandbox Code Playgroud)

3.

GET /file   controllers.Assets.at(path="/public/html", file="file.html")
Run Code Online (Sandbox Code Playgroud)

我得到的错误:(这是最奇怪的)

Compilation error
not enough arguments for method at: (path: String, file: String)play.api.mvc.Call. Unspecified value parameter file.
Run Code Online (Sandbox Code Playgroud)

关于第3个错误的奇怪部分是它被抛出在以下行的不同文件(app/views/main.scala.html)中:

<link rel="stylesheet" media="screen" href="@routes.Assets.at("stylesheets/main.css")">
Run Code Online (Sandbox Code Playgroud)

所有这些方法都可以在stackoverflow上的官方文档和/或线程中找到.我在这里错过了什么?

谢谢.

routes static-files playframework playframework-2.0

32
推荐指数
5
解决办法
3万
查看次数

VideoView匹配父高度并保持纵横比

我有一个像这样设置的VideoView:

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 
  android:id="@+id/player" 
  android:orientation="vertical"
  android:layout_width="fill_parent"
  android:layout_height="fill_parent">

    <VideoView
        android:id="@+id/video"
        android:layout_width="wrap_content"
        android:layout_height="match_parent"
        android:layout_centerInParent="true"
        android:layout_centerVertical="true" />

    <ProgressBar
        android:id="@+id/loader"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_centerHorizontal="true"
        android:layout_centerVertical="true" />

</RelativeLayout>
Run Code Online (Sandbox Code Playgroud)

但VideoView匹配父容器的宽度,然后根据加载的影片的宽高比设置高度.
我想做的恰恰相反,我希望VideoView与父级的高度相匹配,同时保持宽高比不变,视频将被剪裁在两侧.

我设法拉伸VideoView来填充父级,但是不保持宽高比.

另一件事是,我将MediaController添加到VideoView,如下所示:

MediaController controllers = new MediaController(this) {
    @Override
    public void hide() {
        if (state != State.Hidden) {
            this.show();
        }
        else {
            super.hide();
        }
    }
};
controllers.setAnchorView(videoView);
videoView.setMediaController(controllers);

videoView.setOnPreparedListener(new OnPreparedListener() {
    @Override
    public void onPrepared(MediaPlayer mediaPlayer) {
        controllers.show();
    }
});
Run Code Online (Sandbox Code Playgroud)

这很好用,并且控制器始终保持打开状态,但在计算放置视频的位置时(因为它垂直居中),控制器的高度不会被考虑在内.

我的两个问题是:

  1. 如何使VideoView与父级的高度匹配,同时保持宽高比?
  2. 如何让VideoView考虑到它的控制器的高度?

谢谢.

android aspect-ratio dimensions android-videoview

28
推荐指数
6
解决办法
4万
查看次数

如何在不刷新页面的情况下更改页面URL?

如何在不刷新页面的情况下更改URL?

我用CodeIginer构建了一个网站,我想在我的一个页面中实现AJAX和JQuery.问题是; 当我加载内容时,URL不会更改.

假设我有URL http://www.example.com/controller/function/param
和另一个URL:http://www.example.com/controller/function/param2

单击按钮时,如何将第一个URL更改为第二个URL?

javascript ajax jquery

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

如何在加载下一个WebView之前清除以前的WebView内容?

我的场景最初是我正在加载WebView,后来我正在使用不同的URL加载相同的WebView.

我的问题是每当我加载下一个URL时,我可以看到先前加载的URL内容,然后显示我当前加载的URL内容.

我想在加载不同的URL时清除内容.

说,

if (pos == 0) {
    mweb.clearCache(true);
    mweb.clearHistory();
    mweb.loadUrl("http://stackoverflow.com/");
}
else if (pos == 1) {
    mweb.clearCache(true);
    mweb.clearHistory();
    mweb.loadUrl("http://android.stackexchange.com/");
}
Run Code Online (Sandbox Code Playgroud)

双方clearCache()clearHistory()没有为我工作.

android android-webview

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

打字稿:有一种简单的方法可以将一种类型的对象转换为另一种

所以,我有两节课

Item { name: string; desc: string; meta: string}

ViewItem { name: string; desc: string; hidden: boolean; }
Run Code Online (Sandbox Code Playgroud)

我有一个Item数组需要转换为ViewItem数组.目前,我使用for循环遍历数组,实例化ViewItem,为属性赋值并将其推送到第二个数组.

有没有一种简单的方法来实现这个使用lambda表达式?(类似于C#)或者还有其他方法吗?

arrays type-conversion typescript typescript2.0

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