Stream<String> a = Stream.of("one", "three", "five");
Stream<String> b = Stream.of("two", "four", "six");
Run Code Online (Sandbox Code Playgroud)
我需要做什么才能使输出如下?
// one
// two
// three
// four
// five
// six
Run Code Online (Sandbox Code Playgroud)
我调查了concat但是正如javadoc解释的那样,它只是一个接一个地追加,它没有交错/散布.
Stream<String> out = Stream.concat(a, b);
out.forEach(System.out::println);
Run Code Online (Sandbox Code Playgroud)
创建一个延迟连接的流,其元素是第一个流的所有元素,后跟第二个流的所有元素.
错误地给出了
// one
// three
// five
// two
// four
// six
Run Code Online (Sandbox Code Playgroud)
可以这样做,如果我收集它们并迭代,但希望更多Java8-y,Streamy :-)
注意
我不想压缩流
"zip"操作将从每个集合中获取一个元素并将它们组合在一起.
拉链操作的结果将是这样的:(不需要的)
// onetwo
// threefour
// fivesix
Run Code Online (Sandbox Code Playgroud) 我真的不想在这里发帖,因为网上有太多的信息,但是我已经深入了解并无法弄明白.
好的,所以我不能让这个在两个场景中工作,希望两者的答案是一样的.
我的问题是我设置了请求标头,但它似乎没有发送它.
我有一个会话ID s = e32ff223fwefd3,我想将它存储在"Cookie"下,但它似乎没有工作.
这是我有最快的代码示例
import org.apache.http.client.HttpClient;
import org.apache.http.client.methods.HttpGet;
import org.apache.http.HttpResponse;
private static String sessionCookie = "s=12342342352354234";
public static void get(String url) {
HttpClient client = new DefaultHttpClient();
HttpGet request = new HttpGet(url);
if(sessionCookie != null){
Log.d(TAG, "Setting Cookie: "+sessionCookie);
request.setHeader("Cookie", sessionCookie);
} else {
Log.i(TAG, "Null session request get()");
}
HttpResponse response = client.execute(request);
Header[] headers = response.getAllHeaders();
for (int i=0; i < headers.length; i++) {
Header h = headers[i];
Log.i(TAG, "Header names: "+h.getName());
Log.i(TAG, "Header …Run Code Online (Sandbox Code Playgroud) 这是我的错误:
*** Uncaught remote exception! (Exceptions are not yet supported across processes.)
android.util.AndroidRuntimeException: { what=1008 when=368280372 } This message is already in use.
at android.os.MessageQueue.enqueueMessage(MessageQueue.java:171)
at android.os.Handler.sendMessageAtTime(Handler.java:457)
at android.os.Handler.sendMessageDelayed(Handler.java:430)
at android.os.Handler.sendMessage(Handler.java:367)
at android.view.ViewRoot.dispatchAppVisibility(ViewRoot.java:2748)
Run Code Online (Sandbox Code Playgroud)
我正在尝试的是有一个listview,由自定义列表项填充,每个列表项有多个视图,每个视图都附加一个onclick监听器.当按下这个onClickListener时,它会向一个带有what和arg1参数的Handler发送一条消息.单击我的一个元素会触发启动新活动的意图.单击另一个显示祝酒词.当组合按下这些时,我得到上面的错误.即单击文本以触发意图,(然后按回)然后单击图像以显示吐司,然后当您单击文本再次触发意图时,我获得FC.
这是下面的代码,我试图尽可能多地删除错误的骨头:
如果你想跳到什么重要的,请看ConversationAdapter.class中的onClickListener以及它们如何与StartPage.class交互
Android清单:
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.handler.test"
android:versionCode="1"
android:versionName="1.0">
<application android:icon="@drawable/icon" android:label="@string/app_name">
<activity android:name=".StartPage"
android:label="@string/app_name">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<activity
android:name=".DetailsPage"
android:label="DetailsPage"
>
</activity>
</application>
<uses-sdk android:minSdkVersion="3" />
</manifest>
Run Code Online (Sandbox Code Playgroud)
StartPage.class:
package com.handler.test;
import java.util.ArrayList;
import android.app.ListActivity;
import android.app.ProgressDialog;
import …Run Code Online (Sandbox Code Playgroud) 我的代码中有很多Log.i Log.d Log.e,我已经完成了最新的应用程序.我即将发布这个应用程序,我真的不希望人们在将手机插入adb时看到它,但我确实希望它可以用于我自己的调试.
我想扩展android.util.log并且在那里只有一个布尔开关所以我可以在发布时关闭日志并在开发时打开它但是这个类是最终的,我错过了一个技巧吗?
我真的不想通过我的代码删除所有,如果最坏的情况发生最坏,我可以做一个ctrl + h全局替换Log for // Log但是这确实很糟糕.
我也意识到Log.d在运行时被剥离但它仍然运行(失去一点性能)所以不运行这将是一个额外的好处.
是的,所以基本上我正在寻找一种方法来以编程方式打开和关闭我的调试,这也可以让我以后使它成为一个偏好或者某些东西,如果人们想要查看它或帮助并发送它.
你们为此实施了什么?
谢谢
我创建了一个Annotation
/**
* Highlights this method is declared in XML
*/
public @interface FromXML {
}
Run Code Online (Sandbox Code Playgroud)
我正在使用这个看起来像这样的方法:
@FromXML
public void onSomethingClick(View v){
}
Run Code Online (Sandbox Code Playgroud)
vAndroid反射系统需要该变量来调用此方法.但是输入var v是未使用的,所以我的IDE警告我这一点.我喜欢这个警告,并希望将其用于我的其余代码.

隐藏我可以做的警告
@SuppressWarnings("unused")
@FromXML
public void onSomethingClick(View v){
}
Run Code Online (Sandbox Code Playgroud)
或者我可以添加一个param标签
但我宁愿IDE(eclipse)读取我的 @FromXML注释并且不会给我警告.
我知道你不能扩展注释,但这基本上就是我想做的事情.
有没有办法可以添加我的注释,以识别为" 抑制警告 "注释.
要么
有没有办法将我的注释编码为"像'压制警告一样?
我有一个使用导航组件切换的Activity多个应用程序Fragments.当我在两个片段之间切换时,它们onCreate()和onDestroy()方法似乎重叠.因此,当我们访问相同的全局对象时,我很难为片段编写初始化和清理代码.
导航Framgent_A到Fragment_B具有以下方法顺序:
Fragment_B.onCreate()
Fragment_A.onDestroy()
Run Code Online (Sandbox Code Playgroud)
在Fragment_A.onDestroy()我逆转我做的操作Fragment_A.onCreate().而且Fragment_B我希望事情在onCreate()被召唤时处于中立状态.然而事实并非如此,因为Fragment_A.onDestroy()尚未召集.
Android上的重叠是否正常,或者我的导航组件中是否配置了错误?还有另一种方法可以实现我想做的事情吗?我知道我可以将两者结合起来Fragments并使其发挥作用,但我不想让Fragment彼此了解.对我而言,Framgnet_A在Fragment_B创建时,仍然存在时似乎很奇怪,何时Fragment_B应该替换Fragment_A.
任何帮助是极大的赞赏!
编辑:
在调试源代码之后,我发现在FragmentNavigator.navigate() FragmentTransaction.setReorderingAllowed()中调用了它,它允许重新排序操作,甚至允许在前一个之前onCreate()调用一个新的片段onDestroy().问题仍然存在,如何在下一个片段中初始化相同的全局状态之前解决我在一个片段中正确清理全局状态的问题.
android fragment-lifecycle android-architecture-components android-jetpack android-architecture-navigation
我已经阅读了很多关于此事的内容,并且看不到之前已经完成或尝试过的人.
所以我有一个扩展ImageView的对象,然后在此我调用一个进度对话框并将进度对话框的内容设置为imageview(即尝试在imageview..view中绘制进度对话框.)
loadingProgressDialog.setContentView(this); //this is: LoaderImageView extends ImageView
loadingProgressDialog.setIndeterminate(true);
loadingProgressDialog.show();
Run Code Online (Sandbox Code Playgroud)
我收到错误:必须在添加内容之前调用requestFeature()
现在我在大量帖子之前看到过这个错误,是的,答案似乎很明显.我试图设置所有功能:
loadingProgressDialog.requestWindowFeature(Window.FEATURE_NO_TITLE);
loadingProgressDialog.requestWindowFeature(Window.FEATURE_INDETERMINATE_PROGRESS);
loadingProgressDialog.getWindow().requestFeature(Window.FEATURE_PROGRESS);
loadingProgressDialog.getWindow().requestFeature(Window.FEATURE_INDETERMINATE_PROGRESS);
Run Code Online (Sandbox Code Playgroud)
但首先我不明白为什么需要这个?第二,他们都没有工作!
所以问题是我可以将ProgressDialog contentView设置为ImageView吗?如果是这样我有什么问题?
使用SQLiteDatabase作为Closeable时出现此错误
我有一个示例项目来重新创建它:
https://github.com/blundell/SQLDatabaseError
使用扩展SQLiteOpenHelper的类:
public class DatabaseHelper extends SQLiteOpenHelper {
....
public void openAndCloseDatabase() {
SQLiteDatabase database = getWritableDatabase();
close(database);
}
private void close(Closeable database) {
try {
if (database != null) {
database.close();
}
} catch (Exception e) {
Log.e("Error", "Oh no!", e);
}
}
}
Run Code Online (Sandbox Code Playgroud)
堆栈跟踪:
12-14 12:23:43.719: E/AndroidRuntime(5179): FATAL EXCEPTION: main
12-14 12:23:43.719: E/AndroidRuntime(5179): java.lang.IncompatibleClassChangeError: interface not implemented
12-14 12:23:43.719: E/AndroidRuntime(5179): at com.blundell.sqldatabasecursorerror.DatabaseHelper.close(DatabaseHelper.java:35)
12-14 12:23:43.719: E/AndroidRuntime(5179): at com.blundell.sqldatabasecursorerror.DatabaseHelper.openAndCloseDatabase(DatabaseHelper.java:29)
12-14 12:23:43.719: E/AndroidRuntime(5179): …Run Code Online (Sandbox Code Playgroud) 我如何用moshi解析一个json结构,它具有在编译时未知的键:
"foo": {
"name": "hello",
"bar": {
"unknownKey1": {
"a": "1"
}
},
"unknownKey2": {
"b": "2"
},
"unknownKeyX": {
"c": "X"
}
},
"properties": {...}
}
Run Code Online (Sandbox Code Playgroud)
我尝试使用@FromJson适配器,JSONObject但日志只是说json是空的{}(我期望的地方{"unknownKey1": { ... etc ...})
class Foo {
@Json(name = "name")
String name;
@Json(name = "bar")
Bar bar;
static class Bar {
}
}
class BarAdapter {
@FromJson
Bar fromJson(JSONObject json) {
Log.d("xxx", "got " + json.toString());
return new Bar();
}
}
Run Code Online (Sandbox Code Playgroud)
一旦我可以进入json内部栏,我可以手动迭代它以添加到列表或其他东西(因为我不知道将有多少项).
像这样使用它:
Moshi …Run Code Online (Sandbox Code Playgroud) 我希望能够检测到外围传感器何时没有连接到我的Raspberry Pi 3.
例如,如果我有一个GPIO被动红外传感器.
我可以得到这样的所有GPIO端口:
PeripheralManagerService manager = new PeripheralManagerService();
List<String> portList = manager.getGpioList();
if (portList.isEmpty()) {
Log.i(TAG, "No GPIO port available on this device.");
} else {
Log.i(TAG, "List of available ports: " + portList);
}
Run Code Online (Sandbox Code Playgroud)
然后我可以连接到这样的端口:
try {
Gpio pir = new PeripheralManagerService().openGpio("BCM4")
} catch (IOException e) {
// not thrown in the case of an empty pin
}
Run Code Online (Sandbox Code Playgroud)
然而,即使引脚是空的,我仍然可以连接到它(这在技术上是有意义的,因为gpio只是二进制打开或关闭).似乎没有任何api,我无法合理地从逻辑上考虑如何区分连接外围传感器的引脚和"空"的引脚.
因此,目前我无法以编程方式断言我的传感器和电路设置正确.
有人有主意吗?从电子产品的角度来看,它甚至可能吗?
参考文档:
android ×7
java ×4
android-architecture-components ×1
android-architecture-navigation ×1
annotations ×1
cookies ×1
custom-view ×1
debugging ×1
eclipse ×1
gson ×1
handler ×1
http ×1
http-headers ×1
httpclient ×1
imageview ×1
implements ×1
java-8 ×1
java-stream ×1
json ×1
listview ×1
logcat ×1
logging ×1
message ×1
moshi ×1
parsing ×1