小编sor*_*ist的帖子

添加自定义LinearLayout时,Android布局预览器会引发错误

我已经定义了一个扩展LinearLayout功能的自定义ViewGroup:

public class TestLayout extends LinearLayout {

    public TestLayout(Context context, AttributeSet attrs) {
        super(context, attrs);

        LayoutInflater inflater = (LayoutInflater)context.getSystemService
                  (Context.LAYOUT_INFLATER_SERVICE);

        inflater.inflate(R.layout.testlayout, this, true);
    }

}
Run Code Online (Sandbox Code Playgroud)

它膨胀的布局(testlayout.xml)如下所示:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:orientation="vertical" android:gravity="center">

    <Button
        android:id="@+id/button1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Button"/>

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

最后我在main.xml中使用这个自定义组件:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:orientation="vertical" >

    <my.test.namespace.TestLayout
        android:id="@+id/testLayout1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content" >
    </my.test.namespace.TestLayout>

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

在布局编辑器中查看我的main.xml时,eclipse会抛出一个错误: my.test.namespace.TestLayout无法实例化.

和堆栈跟踪:

android.content.res.Resources$NotFoundException: Could not resolve resource value: 0x7F030001.
    at com.android.layoutlib.bridge.android.BridgeResources.throwException(BridgeResources.java:648)
    at com.android.layoutlib.bridge.android.BridgeResources.getLayout(BridgeResources.java:270)
    at android.view.LayoutInflater.inflate(LayoutInflater.java:318)
    at my.test.namespace.TestLayout.<init>(TestLayout.java:18) …
Run Code Online (Sandbox Code Playgroud)

java android android-linearlayout layout-inflater

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

Firefox将div视为图像

我正在使用这个HTML,CSS和Javascript代码(如果你想测试它,可以在一个文档中):

<style type="text/css">
#slider_container {
    width: 200px;
    height: 30px;
    background-color: red;
    display:block;
}

#slider {
    width: 20px;
    height: 30px;
    background-color: blue;
    display:block;
    position:absolute;
    left:0;
}
</style>
<script type="text/javascript" src="../../js/libs/jquery-1.4.2.min.js"></script>
<script type="text/javascript">
$(document).ready(function() {

   $("#slider").mousedown(function() {
       $(document).mousemove(function(evnt) {
       $("#test").html("sliding");
   }).mouseup(function() {
       $("#test").html("not sliding");
       $(document).unbind("mousemove mouseup");
   });});

});
</script>

<div id="test">a</div>
<div id="slider_container">
  <div id="slider"></div>
</div>
Run Code Online (Sandbox Code Playgroud)

一切(令人惊讶的)在IE中运行良好,但是当使用这个javascript时,firefox似乎完全是clusterf*ck.第一个"幻灯片"没问题,你拖动,它说"滑动",你下降,它说"没有滑动".在第二个"幻灯片"(或mousedown,如果你愿意),firefox突然认为div是一个图像或链接,并想要拖动它.

拖动的屏幕截图:

http://i.imgur.com/nPJxZ.jpg

显然,在红色div中半定位的蓝色div是被拖动的那个.拍摄屏幕截图时,Windows不捕获光标,但它是一个停止标志.

有什么办法可以阻止这种默认行为吗?

javascript firefox jquery events

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

如何在此正则表达式中允许空格?

我是正则表达式的业余爱好者,如何在这个正则表达式中允许空格(无关紧要)?

if(preg_match('/[^A-Za-z0-9_-]/', $str)) return FALSE;
Run Code Online (Sandbox Code Playgroud)

php regex

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

如何将16位PCM音频字节数组转换为double或float数组?

我正在尝试在.3gpp音频文件上执行快速傅立叶变换.该文件包含来自手机麦克风的44100kHz的小型5秒录音.

我可以找到的每个Java FFT算法只需要double [],float []或Complex []输入,原因很明显,但是我在一个字节数组中读取音频文件,所以我很困惑我从哪里离开 我唯一能找到的是前一个问题的答案:

Android音频FFT使用audiorecord检索特定频率幅度

但我不确定是否这是正确的程序.任何有见识的人?

java android fft

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

如何在Evernote应用程序中创建这样的下拉菜单?

单击操作栏中的中间图标时,会出现一个下拉菜单:

我如何制作其中一个?RelativeLayouts

android android-layout

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

正则表达式只验证自然数?

我最近发现我用来验证用户输入的方法接受了一些我不是特别满意的值.我需要它来只接受自然数(1,2,3等),而不非数字字符.

我的方法看起来像这样:

function is_natural($str)
{
   return preg_match('/[^0-9]+$/', $str) ? false : $str;
}
Run Code Online (Sandbox Code Playgroud)

所以如果它找到除了一个完整的自然数之外的其他东西,它应该返回false.问题是,它接受类似"2.3"甚至是字符串"2.3,2.2"

php regex preg-match

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

来自 PHP 服务器的 JSON 数据响应为空

我很难弄清楚这一点。似乎无论我尝试什么,PHP 总是最终返回一个空数组。这是我的主文件(index.php)的代码:

<script language="javascript" type="text/javascript">

$(document).ready(function(){

  $(".ajaxlink").click(function() {
    callServer();
    return false; //Stop link from redirecting
  });

});

var test = { "testName": "testValue" }
var testJSON = JSON.stringify(test);

function updatePage(data) {
  document.getElementById("testDiv").innerHTML = data;
}

function callServer() {
 $.ajax({
   type: "POST",
   url: "ajax/server.php",
   data: testJSON,
   success: function(data) {
     updatePage(data);
   },
   //Upon error, output message containing a little info on what went wrong
   error: function (XMLHttpRequest, textStatus, errorThrown) {
     alert('An Ajax error occured\ntextStatus = ' + textStatus + '\nerrorThrown = ' …
Run Code Online (Sandbox Code Playgroud)

php ajax jquery json

5
推荐指数
1
解决办法
4481
查看次数

我如何很好地对异步方法进行单元测试?

我目前正在使用线程锁定对我的异步方法进行单元测试,通常我将 aCountDownLatch注入我的异步组件并让主线程等待它达到 0。但是,这种方法看起来很丑陋,并且不能很好地扩展,考虑一下当我为一个组件编写 100 多个测试并且它们都必须按顺序等待工作线程执行一些假异步作业时会发生什么。

那么还有另一种方法吗?考虑以下简单搜索机制的示例:

搜索器.java

public class Searcher {

    private SearcherListener listener;

    public void search(String input) {
        // Dispatch request to queue and notify listener when finished
    }

}
Run Code Online (Sandbox Code Playgroud)

搜索者监听器.java

public interface SearcherListener {

    public void searchFinished(String[] results);

}
Run Code Online (Sandbox Code Playgroud)

您将如何在search不使用多个线程并阻止一个线程等待另一个线程的情况下对该方法进行单元测试?我从How to use Junit to test asynchronous processes 中汲取了灵感,但最重要的答案没有提供具体的解决方案来说明这将如何工作。

java junit unit-testing asynchronous

5
推荐指数
1
解决办法
1450
查看次数

从SQL Server 2012上的SSIS目录执行SSIS包

在SQL Server 2012的新SSIS目录,从通过C#中的SQL Server执行SSIS包的方式以前在本地(它基本上下载包并执行它的调用者机器上)确实不再起作用:

Application app = new Application();
Package pkg = app.LoadFromSqlServer("\\FolderRoot", "myserver", null, null, null);
pkg.Execute();
Run Code Online (Sandbox Code Playgroud)

MSDN文章以编程方式加载和运行本地程序包中讨论了此方法.

对于SQL Server 2012,使用SSIS目录方法,执行SSIS包的新方法似乎是使用Microsoft.SqlServer.Management.IntegrationServices命名空间中的类.令我困惑的是,Microsoft没有为这种处理包执行的新方法提供任何有用的文档.在下面的博客文章提出了以下的方法来做到这一点:

SqlConnection ssisConnection = new SqlConnection(@"Data Source=.\SQL2012;Initial Catalog=master;Integrated Security=SSPI;");
IntegrationServices ssisServer = new IntegrationServices(ssisConnection);
PackageInfo ssisPackage = ssisServer.Catalogs["SSISDB"].Folders["MasterChild"].Projects["MasterChildPackages"].Packages["master.dtsx"];
long executionIdentifier = ssisPackage.Execute(false, null, executionParameter);
Run Code Online (Sandbox Code Playgroud)

但是,这不会在本地执行,而是在服务器上运行.我的问题是,使用远程SQL Server 2012上的SSIS目录,是否仍然可以在我自己的机器上从该远程服务器本地执行包?

c# ssis sql-server-2012

5
推荐指数
1
解决办法
3358
查看次数

从Vue中的自定义事件获取事件源?

我正在构建一个由未指定数量的子组件组成的 Vue 组件。只有一个子组件始终可见,并且只有当当前可见的子组件发出事件时,用户才能在子组件之间进行切换is-valid

我想保持这种解耦,这样孩子们就不知道他们的父母,只能通过发出事件进行通信。这也意味着子组件不知道他们在父组件中的位置。

因此,父组件必须以某种方式跟踪事件来自哪个子组件。如果事件来自右侧子级(当前可见的),则会激活一些按钮,允许用户转到下一个或上一个子级。

到目前为止,这是我的代码:

超文本标记语言

<div id="app">
    <template id="m-child">
        <div>
            <button v-on:click="setstate(true)">Valid</button>
            <button v-on:click="setstate(false)">Invalid</button>
        </div>
    </template>

    <template id="m-parent">
        <div>
            <m-child v-on:newstate="newchildstate"></m-child>
            <m-child v-on:newstate="newchildstate"></m-child>
            <m-child v-on:newstate="newchildstate"></m-child>
        </div>
    </template>

    <m-parent></m-parent>
</div>
Run Code Online (Sandbox Code Playgroud)

JS

Vue.component('m-child', {
    template: '#m-child',
    data: function() {
        return {};
    },
    methods: {
        setstate: function (valid) {
            this.$emit('newstate', valid);
        }
    }
});

Vue.component('m-parent', {
    template: '#m-parent',
    methods: {
        newchildstate: function (valid) {
            console.log('valid:' + valid + ', but where from?');
        }
    }
});

new Vue({
    el: …
Run Code Online (Sandbox Code Playgroud)

javascript vue.js

5
推荐指数
1
解决办法
4446
查看次数