小编amp*_*amp的帖子

获取数组内对象的索引,匹配条件

我有这样一个数组:

[{prop1:"abc",prop2:"qwe"},{prop1:"bnmb",prop2:"yutu"},{prop1:"zxvz",prop2:"qwrq"},...]
Run Code Online (Sandbox Code Playgroud)

如何在不迭代整个数组的情况下获取与条件匹配的对象的索引?

例如,给定prop2=="yutu",我想获得索引1.

我看到.indexOf()但是认为它用于简单的数组["a1","a2",...].我也检查了$.grep()但这会返回对象,而不是索引.

javascript arrays jquery

271
推荐指数
7
解决办法
34万
查看次数

使用数组适配器对listview排序

我有一个listview连接到自定义数组适配器.此列表显示TCP连接收到的更改dataSet的信息...

我能够对listview进行排序sort (Comparator<? super T> comparator),但是当dataSet被更改时,listview不再排序......

我可以在sort ()每次更改dataSet时使用,但我认为这不是最佳选择...

我怎样才能做到这一点?有什么建议?

编辑

我在实施所提出的解决方案时遇到问题......

MyComparatorB.java

public class MyComparatorB implements Comparator<DeviceB> {

private byte orderType;

public MyComparatorB(byte type) {

    this.orderType = type;

}

public int compare(DeviceB lhs, DeviceB rhs) {

    int res = 0;
    if (orderType == SortType.ALPHA) {
            res = (lhs.getName()).compareTo(rhs.getName());
        }
        else if (orderType == SortType.LAST_ACT) {
            res = (rhs.getTime().getTime()).compareTo(lhs.getTime().getTime());
        }
        return res;
    }

}
Run Code Online (Sandbox Code Playgroud)

我的customArrayAdapter.java的片段

    @Override
public void notifyDataSetChanged() {
    super.notifyDataSetChanged();
}


//-----------Order the content of the …
Run Code Online (Sandbox Code Playgroud)

sorting android listview

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

在工作线程中启动异步任务

我有两个问题:

  • 我们可以在工作线程中启动/执行异步任务吗?
  • 如果是,方法onPreExecute(),onProgressUpdate(Progress...)onPostExecute(Result)在UI线程上调用?

我想知道,因为我在工作线程上运行了TCP连接,当收到数据包时,我想启动一个新线程来解析这个数据包,之后刷新UI线程上的一些数据结构.

提前致谢!

multithreading android asynchronous task

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

检查网络连接android

在我在模拟器上测试的应用程序中,我使用以下代码检查网络连接(WIFI):

    public boolean isOnline() {
    ConnectivityManager cm =
        (ConnectivityManager) getSystemService(Context.CONNECTIVITY_SERVICE);
    NetworkInfo netInfo = cm.getActiveNetworkInfo();
    if (netInfo != null && netInfo.isConnectedOrConnecting()) {
        return true;
    }
    return false;
}
Run Code Online (Sandbox Code Playgroud)

true即使我禁用了计算机的无线连接,此方法也始终返回...这是由模拟器引起的还是其他原因?

如果这不是检查网络连接的正确方法,我该怎么办?

connection networking android

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

合并两个对象而不覆盖

我有一个像这样的defaultObject:

var default = {
    abc: "123",
    def: "456",
    ghi: {
       jkl: "789",
       mno: "012"
    }
};
Run Code Online (Sandbox Code Playgroud)

我有另一个喜欢:

var values = {
    abc: "zzz",
    ghi: {
       jkl: "yyy",
    }
};
Run Code Online (Sandbox Code Playgroud)

如何将这两个对象与以下结果合并(无覆盖)?

var values = {
    abc: "zzz",
    def: "456",
    ghi: {
       jkl: "yyy",
       mno: "012"
    }
};
Run Code Online (Sandbox Code Playgroud)

(我不想更改默认对象!)

javascript merge jquery object

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

禁止从地址栏调用操作方法

我的控制器中有一个方法,我不想从浏览器的地址栏中调用...

有没有办法做到这一点?也许某种注释,路由配置中的修改?我有哪些选择?

controller actionmethod asp.net-mvc-4

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

GrantPermissionRule 授予权限失败

我正在编写一个测试类,并尝试使用以下规则授予权限GrantPermissionRule

@Rule
public GrantPermissionRule permissionsRule = GrantPermissionRule.grant(
        Manifest.permission.READ_EXTERNAL_STORAGE,
        Manifest.permission.WRITE_EXTERNAL_STORAGE);
Run Code Online (Sandbox Code Playgroud)

但是我在测试执行开始时收到以下错误:

junit.framework.AssertionFailedError: Failed to grant permissions, see logcat for details
    at junit.framework.Assert.fail(Assert.java:50)
    at android.support.test.runner.permission.PermissionRequester.requestPermissions(PermissionRequester.java:110)
    at android.support.test.rule.GrantPermissionRule$RequestPermissionStatement.evaluate(GrantPermissionRule.java:128)
    at org.junit.rules.RunRules.evaluate(RunRules.java:20)
    at org.junit.runners.ParentRunner.runLeaf(ParentRunner.java:325)
    at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:78)
    at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:57)
    at org.junit.runners.ParentRunner$3.run(ParentRunner.java:290)
    at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:71)
    at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:288)
    at org.junit.runners.ParentRunner.access$000(ParentRunner.java:58)
    at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:268)
    at org.junit.runners.ParentRunner.run(ParentRunner.java:363)
    at android.support.test.runner.AndroidJUnit4.run(AndroidJUnit4.java:101)
    at org.junit.runners.Suite.runChild(Suite.java:128)
    at org.junit.runners.Suite.runChild(Suite.java:27)
    at org.junit.runners.ParentRunner$3.run(ParentRunner.java:290)
    at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:71)
    at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:288)
    at org.junit.runners.ParentRunner.access$000(ParentRunner.java:58)
    at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:268)
    at org.junit.runners.ParentRunner.run(ParentRunner.java:363)
    at org.junit.runner.JUnitCore.run(JUnitCore.java:137)
    at org.junit.runner.JUnitCore.run(JUnitCore.java:115)
    at android.support.test.internal.runner.TestExecutor.execute(TestExecutor.java:56)
    at android.support.test.runner.AndroidJUnitRunner.onStart(AndroidJUnitRunner.java:384)
    at android.app.Instrumentation$InstrumentationThread.run(Instrumentation.java:1886)
Run Code Online (Sandbox Code Playgroud)

这是 logcat 输出(仅限错误):

12-23 13:03:21.196 …
Run Code Online (Sandbox Code Playgroud)

android android-testing android-permissions

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

使用 Kotlin 序列化反序列化通用对象

我正在尝试用kotlin 序列化替换 Gson 库来处理 JSON 序列化/反序列化。

我在反序列化通用对象时面临一些问题,我设置了一个简单的示例来说明我想要实现的目标:

@Serializable
data class ContentMessageDto<T>(
    val method: String,
    val content: T
)

@Serializable
private data class DummyObjectNonNullProperties(
    val value: Int,
    @SerialName("aaa") val someProp: String,
    val bbb: Boolean,
    val ccc: Double
)

interface MyParser {
    fun <T> parseContentMessage(
        json: String
    ): ContentMessageDto<T>
}

class MyParserImpl(private val jsonSerialization: Json) : MyParser {
    override fun <T> parseContentMessage(json: String): ContentMessageDto<T> {
        return jsonSerialization.decodeFromString<ContentMessageDto<T>>(json)
    }

}

fun main() {
    println("start processing...")
    val jsonToParse = """
                {
                    "method":"get",
                    "content":{ …
Run Code Online (Sandbox Code Playgroud)

generics serialization kotlin json-deserialization

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

完成申请时关闭套接字

我的应用程序有一些活动,在第一个我连接套接字与其他活动的服务器通信.此套接字在工作线程中运行.

我的问题是:在应用程序完成时我可以在哪里关闭此套接字?以BACK按钮为例......

我认为关闭onDestroy()最后一个活动的套接字,但是这个活动可以在运行时由系统销毁并关闭套接字,即使应用程序没有完成.我不想要这个.

run()处理套接字连接的线程方法如下:

public void run() { 
    if (this.bliveclient.isConnected()){       
        try {
            //...
            while (running) {
                //waiting for input data and do something...
            }
        }
        catch (IOException ex) {
            //handle exception
        }
        finally{
            try {
                mySocket.close();
            } catch (IOException ex) {
                //handle exception
            }
        }
    }
Run Code Online (Sandbox Code Playgroud)

但是finally块永远不会被调用.

任何人都可以给我一些提示吗?

sockets android

6
推荐指数
1
解决办法
4673
查看次数

使用CSS将容器中的按钮定位为网格

我有一个容器,其中多个锚标签被设置为按钮(它可以有更多或更少的按钮):

<div class="menu-container">
    <div class="button-container">
       <a href="#/Action1" class="button">Action1</a>
       <a href="#/Action2" class="button">Action2</a>
       <a href="#/Action3" class="button">Action3</a>
       <a href="#/Action4" class="button">Action4</a>
       <a href="#/Action5" class="button">Action5</a>
    </div>
</div>
Run Code Online (Sandbox Code Playgroud)

我如何使用CSS来设置这些按钮,以便将这些按钮列为最多4列的网格?我尝试过display:inline-block,float:left但没有成功.

我知道我需要修复容器的宽度,但我不能在容器内部安装所有锚标签.这必须是dinamic,因为可能有更多或更少的按钮......

我想要实现的是:

在此输入图像描述

html css grid

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