在我的Android应用程序中,我有一个包含Parcelable对象(implements Parcelable)的活动.
该对象包含一个地图.
当我尝试在writeToParcel()方法中执行以下操作时:
parcel.writeMap(myMap);
Run Code Online (Sandbox Code Playgroud)
我从API获得以下评论:
请改用writeBundle(Bundle).在当前dataPosition()中将Map展平到parcel中,如果需要,增加dataCapacity().Map键必须是String对象.Map值使用writeValue(Object)编写,并且必须遵循其中的规范.
我该怎么办呢?我该writeBundle(myMap)怎么用这里?
我知道我可以将android配置限定符用于不同的屏幕尺寸和不同的方向.(我使用的是Android 2.2).
但我需要将我的应用程序构建为具有独特屏幕尺寸/分辨率的非常特定的平板电脑.
我可以为我的特定平板电脑配备另一个配置限定符,因此每当使用该平板电脑运行我的应用程序时,它将从该特定配置限定符获得其布局/扩展等吗?
例如:我想要一个名为"drawable-specialtablet"和"values-specialtablet"的目录.
我该怎么做?
我使用的是Javafx v8.0.25-b18.
我发生的问题是动态combox的下拉列表的大小不会改变,所以如果我最初在下拉列表中有两个项目,那么下拉列表大小将适用于两个项目,但如果我现在填充动态combox与三个项目然后我在里面有一个小滚动条!?,如果我删除一个项目 - 我将在combox中有一个空白区域!?
我希望每次将值放入其中时"重置"下拉列表大小,因此每次在运行时填充时它都是正确的大小.
为了澄清更多我正在添加三个图像:
1.第一个屏幕截图显示初始下拉大小为2
我正在添加简单的代码来创建这个场景,我要感谢@Gikkman帮助实现这一点,代码实际上是他的!
public class Test extends Application {
private int index = 0;
@Override
public void start(Stage primaryStage) throws IOException {
VBox vbox = new VBox();
vbox.setSpacing(10);
vbox.setAlignment(Pos.CENTER);
final ComboBox<String> box = new ComboBox<>();
box.setPrefWidth(200);
box.setVisibleRowCount(10);
Button add = new Button("Add");
Button remove = new Button("Remove");
add.setOnAction( new EventHandler<ActionEvent>() {
@Override
public void handle(ActionEvent event) {
box.getItems().add("Item " + index++);
box.getItems().add("Item " + index++);
}
});
remove.setOnAction( new EventHandler<ActionEvent>() {
@Override …Run Code Online (Sandbox Code Playgroud) 场景:
预期结果:第三个(最后一个)活动设置第二个活动的onActivityResult 上捕获的结果
当前结果:第三个(最后一个)活动设置在第一个活动的onActivityResult 上捕获的结果
如何在第二个活动上设置第三个活动的结果第三个(最后一个)活动设置第二个活动的onActivityResult上捕获的结果?
一些代码片段:
第一项活动
public class TestProjActivity extends Activity {
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
//setContentView(R.layout.main);
Log.i("TAAAG", "1st activity - startActivityForResult");
Intent intent = new Intent(TestProjActivity.this, Activ2.class);
intent.setFlags(Intent.FLAG_ACTIVITY_FORWARD_RESULT);
startActivityForResult(intent, 1008);
}
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
Log.i("TAAAG", "1st activity - onActivityResult");
if (resultCode == RESULT_OK) {
Log.i("TAAAG", String.valueOf(requestCode));
switch (requestCode) { …Run Code Online (Sandbox Code Playgroud) 我有一个Wicket应用程序.在应用程序中,用户可以以多种形式填充多个字段.
我在底部有一个特殊的位置,用户可以获得反馈(使用FeedbackPanel).反馈包括成功和错误消息.
问题是我想为不同的消息设置不同的CSS样式.
我已经有了想要实现的CSS样式.我可以在HTML表单中成功实现它们,但我对两个消息都有相同的CSS样式.
我希望根据消息的不同严重程度对相同的反馈组件具有不同的CSS样式,因此如果消息是"错误" - 我希望它具有特定的样式,如果它是"成功"我想要它有不同的风格.
如何根据消息的严重性将FeedbackPanel指向特定的CSS样式?
我想使用 APache Tika 的 MediaType 类来比较 mediaType。
我首先使用 Tika 来检测 MediaType。然后我想根据 MediaType 开始一个动作。
因此,如果 MediaType 来自 XML 类型,我想做一些操作,如果它是压缩文件,我想启动其他操作。
我的问题是有很多 XML 类型,那么如何使用 MediaType 检查它是否是 XML?
这是我之前(在 Tika 之前)的实现:
if (contentType.contains("text/xml") ||
contentType.contains("application/xml") ||
contentType.contains("application/x-xml") ||
contentType.contains("application/atom+xml") ||
contentType.contains("application/rss+xml")) {
processXML();
}
else if (contentType.contains("application/gzip") ||
contentType.contains("application/x-gzip") ||
contentType.contains("application/x-gunzip") ||
contentType.contains("application/gzipped") ||
contentType.contains("application/gzip-compressed") ||
contentType.contains("application/x-compress") ||
contentType.contains("gzip/document") ||
contentType.contains("application/octet-stream")) {
processGzip();
}
Run Code Online (Sandbox Code Playgroud)
我想将其切换为使用 Tika,如下所示:
MediaType mediaType = MediaType.parse(contentType);
if (mediaType == APPLICATION_XML) {
return processXml();
} else if (mediaType == APPLICATION_ZIP || …Run Code Online (Sandbox Code Playgroud) android ×3
apache-tika ×1
combobox ×1
content-type ×1
java ×1
javafx ×1
javafx-8 ×1
media-type ×1
wicket ×1