我有这样一个数组:
[{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()但这会返回对象,而不是索引.
我有一个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) 我有两个问题:
onPreExecute(),onProgressUpdate(Progress...)并onPostExecute(Result)在UI线程上调用?我想知道,因为我在工作线程上运行了TCP连接,当收到数据包时,我想启动一个新线程来解析这个数据包,之后刷新UI线程上的一些数据结构.
提前致谢!
在我在模拟器上测试的应用程序中,我使用以下代码检查网络连接(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即使我禁用了计算机的无线连接,此方法也始终返回...这是由模拟器引起的还是其他原因?
如果这不是检查网络连接的正确方法,我该怎么办?
我有一个像这样的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)
(我不想更改默认对象!)
我的控制器中有一个方法,我不想从浏览器的地址栏中调用...
有没有办法做到这一点?也许某种注释,路由配置中的修改?我有哪些选择?
我正在编写一个测试类,并尝试使用以下规则授予权限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) 我正在尝试用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) 我的应用程序有一些活动,在第一个我连接套接字与其他活动的服务器通信.此套接字在工作线程中运行.
我的问题是:在应用程序完成时我可以在哪里关闭此套接字?以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块永远不会被调用.
任何人都可以给我一些提示吗?
我有一个容器,其中多个锚标签被设置为按钮(它可以有更多或更少的按钮):
<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,因为可能有更多或更少的按钮......
我想要实现的是:
android ×5
javascript ×2
jquery ×2
actionmethod ×1
arrays ×1
asynchronous ×1
connection ×1
controller ×1
css ×1
generics ×1
grid ×1
html ×1
kotlin ×1
listview ×1
merge ×1
networking ×1
object ×1
sockets ×1
sorting ×1
task ×1