我无法解决如何Fragment在典型的列表细节设计模式中正确管理s的问题.
我的布局工作正常,横向视图(双窗格)的结构如下:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout ... >
<FrameLayout android:id="@+id/list" ... />
<FrameLayout android:id="@+id/container" ... />
</LinearLayout>
Run Code Online (Sandbox Code Playgroud)
像这样的纵向视图(单个窗格):
<?xml version="1.0" encoding="utf-8"?>
<FrameLayout android:id="@+id/container" ... />
Run Code Online (Sandbox Code Playgroud)
我还有一个refs.xmlin res/values-w600dp/,以确保根据设备的屏幕宽度加载适当的布局.
选择列表项时,横向视图应并排显示列表和详细信息,而纵向视图应仅显示全屏详细信息.如果未选择任何内容,则横向视图应显示左侧的左侧和右侧的空白区域,而纵向视图应仅显示全屏列表.

但是,这是我遇到麻烦的地方:
我是否使用"main" Activity作为列表+可选的详细信息布局,另一个"详细信息" Activity用于纵向,仅详细信息布局?这似乎是Fragments指南示例所做的.我已经得到了这个普遍的工作,但是当方向改变时,我如何保持我的细节片段的状态?
考虑上面显示的相反情况 - 从纵向旋转到横向,同时细节可见意味着Activity需要finish()编辑细节,因此主要Activity可以显示双窗格布局,但这也会破坏细节片段及其细节savedInstanceState.如果用户EditText在详细信息片段的字段中键入了信息,然后旋转设备,当我将其添加到主(双窗格)时,如何保留详细信息片段的整个UI状态Activity?
我是否只使用一个Activity并Fragment自己管理?这允许我在方向改变时保留细节UI的状态(因为Android会自动处理这个问题),但是当它涉及到后端堆栈时会变得混乱.
考虑图像中的情况 - 当细节可见时应从横向旋转到纵向应显示单窗格显示详细信息,但如何正确管理后堆栈和ActionBar主页图标以显示列表单窗格?旋转回到横向还需要撤消我之前执行的任何后向堆栈操作,因为两个片段将立即可见.
经过一些搜索后,我发现了两个类似的问题(从双窗格切换到单窗格上的方向更改维护片段堆栈和保留活动之间的片段状态),但我的情况略有不同,因为我不是要尝试改进此功能但是最好预先计划好.我错过了什么?当然,Android可以同时管理后台堆栈(如多个Activity案例)和 UI状态(如单个Activity案例中),对吧?
android android-lifecycle android-fragments android-orientation
我尝试使用简单的序列化嵌入式集合.例如 :
Map<String, List<MyClass>>
Run Code Online (Sandbox Code Playgroud)
我已经在MyClass中添加了必要的注释,我尝试使用@ElementMap但它不起作用:
Exception in thread "main" org.simpleframework.xml.transform.TransformException: Transform of class java.util.ArrayList not supported
如果它只是
@ElementMap Map<String, MyClass>
Run Code Online (Sandbox Code Playgroud)
它工作正常.我不知道如何处理嵌入式收藏.我知道@ElementList注释但在这种情况下不知道如何使用它.任何提示?
在下面的代码中,JSONObject.length是2:
var JSONObject = [{
"name": "John Johnson",
"street": "Oslo West 16",
"age": 33,
"phone": "555 1234567"
}, {
"name": "John Johnson",
"street": "Oslo West 16",
"age": 33,
"phone": "555 1234567"
}];
Run Code Online (Sandbox Code Playgroud)
但是,在下面的代码中,JSONObject.length未定义.为什么?
var JSONObject = {
"name": "John Johnson",
"street": "Oslo West 16",
"age": 33,
"phone": "555 1234567"
};
Run Code Online (Sandbox Code Playgroud) 如何在网页上使用iOS设备上的相机读取线性(一维,如Code 128)条形码?
基本上,我想我正在寻找一个免费的条形码扫描仪应用程序,我可以安装在iPad上,但我的网络应用程序可以使用它.我想从网络浏览器启动条形码扫描仪,然后接收扫描数据.这个过程在iOS上看起来如何?条形码扫描仪应用程序是否需要支持回调方案,someProtocol://scanBarcode?callback=http://example.com/scan.do%3Fscanned=以便它可以"重新启动"我的网络应用程序?还有其他方法可以在iOS上实现Web应用程序和本机应用程序之间的此类数据传输/交互吗?
我正在考虑用新框架替换Apache Xerces-J,我正在考虑将Simple作为其继承者.
你有简单的经历吗?
它的优点和缺点是什么?
是否建议在servlet容器或应用程序服务器中使用企业软件?
我正在使用Java和SimpleXML
我需要用SimpleXML解析这个XML文件:
<magazine title="N?mero 1" id="1">
<description>yutyutyu</description>
<miniature>http://web.com/scripts/getImage.php?idMagazine=1&resource=miniature.jpg</miniature>
<summary>2</summary>
<pages>
<page src="http://web.com/scripts/getImage.php?idMagazine=1&resource=page_001.jpg" id="1" thumbnail="http://web.com/scripts/getImage.php?idMagazine=1&resource=thumbnail_001.jpg">
<areas>
<area id="1">
<top>188</top>
<left>204</left>
<width>399</width>
<height>319</height>
<action type="openBrowser">http://www.web.com</action>
</area>
<area id="2">
<top>188</top>
<left>204</left>
<width>399</width>
<height>319</height>
<action type="openBrowser">http://www.web.com</action>
</area>
</areas>
</page>
<page src="http://web.com/scripts/getImage.php?idMagazine=1&resource=page_002.jpg" id="2" thumbnail="web.com/scripts/getImage.php?idMagazine=1&resource=thumbnail_002.jpg"/>
<page src="http://web.com/scripts/getImage.php?idMagazine=1&resource=page_003.jpg" id="3" thumbnail="web.com/scripts/getImage.php?idMagazine=1&resource=thumbnail_003.jpg"/>
</pages>
</magazine>
Run Code Online (Sandbox Code Playgroud)
我得到了这个例外:
03-22 16:02:35.072:WARN/System.err(1931):org.simpleframework.xml.core.ValueRequiredException:无法满足@ org.simpleframework.xml.ElementList(data = false,empty = true,entry = ,inline = false,name =,required = true,type = void)on field'area'public java.util.ArrayList com.Magazine.Page.areas for class com.Magazine.Page at line 1
杂志有一系列页面,每个页面都有一系列区域,每个区域都有一个动作类,其中包含更多内容.问题必须在区域数组上,因此它位于Page类中.
@Root (name="magazine")
public class FullMagazine {
@Attribute
String …Run Code Online (Sandbox Code Playgroud) 我在项目中使用simpleframework(http://simple.sourceforge.net/)来进行序列化/反序列化需求,但在处理空/ null字符串值时,它不能按预期工作(好吧,至少不是我期望的) .
如果我使用空String值序列化一个对象,它将显示为一个空的xml元素.
所以这
MyObject object = new MyObject();
object.setAttribute(""); // attribute is String
将序列化为
<object>
<attribute></attribute>
</object>
但反序列化该空属性将最终为null,而不是空字符串.
我认为它应该是一个空字符串而不是null,我完全疯了吗?我怎么能以我想要的方式让它工作呢?
哦,如果我使用null属性序列化对象,它将最终显示
<object/>
为人们可能期望的.
编辑:
添加了一个我正在运行的简单测试用例
@Test
public void testDeserialization() throws Exception {
StringWriter writer = new StringWriter();
MyDTO dto = new MyDTO();
dto.setAttribute("");
Serializer serializer = new Persister();
serializer.write(dto, writer);
System.out.println(writer.getBuffer().toString());
MyDTO read = serializer.read(MyDTO.class, writer.getBuffer().toString(),true);
assertNotNull(read.getAttribute());
}
@Root
public class MyDTO {
@Element(required = false)
private String attribute;
public String getAttribute() {
return attribute;
}
public void setAttribute(String …Run Code Online (Sandbox Code Playgroud) 我使用Simple XML(simple-xml-2.6.2.jar)来解析xml文件,如:
<?xml version="1.0" encoding="UTF-8" ?>
<orderList>
<order id="1">
<name>NAME1</name>
</order>
<order id="2">
<name>NAME2</name>
</order>
</orderList>
Run Code Online (Sandbox Code Playgroud)
根元素包含subElements.我想成为ArrayList,怎么做?
我一直在尝试围绕RSS Feed包含一组基于Simple XML(Java Serializer)的类.样品饲料是
<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0">
<channel>
<title>Coding Horror</title>
<link>http://www.codinghorror.com/blog/</link>
<description>programming and human factors - Jeff Atwood</description>
<language>en-us</language>
<lastBuildDate>Wed, 04 May 2011 20:34:18 -0700</lastBuildDate>
<pubDate>Wed, 04 May 2011 20:34:18 -0700</pubDate>
<generator>http://www.typepad.com/</generator>
<docs>http://blogs.law.harvard.edu/tech/rss</docs>
<image>
<title>Coding Horror</title>
<url>http://www.codinghorror.com/blog/images/coding-horror-official-logo-small.png</url>
<width>100</width>
<height>91</height>
<description>Logo image used with permission of the author. (c) 1993 Steven C. McConnell. All Rights Reserved.</description>
<link>http://www.codinghorror.com/blog/</link>
</image>
<xhtml:meta xmlns:xhtml="http://www.w3.org/1999/xhtml" name="robots" content="noindex" />
<atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" type="application/rss+xml" href="http://feeds.feedburner.com/codinghorror" />
</channel>
</rss>
Run Code Online (Sandbox Code Playgroud)
我在运行代码时遇到的错误是
org.simpleframework.xml.core.PersistenceException: Element 'link' declared twice …Run Code Online (Sandbox Code Playgroud) 我正在使用Simple xml库将Jaxb注释移植到android中. http://simple.sourceforge.net/home.php
我在jaxb @XmlRegistry @XmlElementDecl中遇到了这个注释,我必须将它转换为简单的xml注释.你知道吗?另外如何将JAXBElement类移植到simpleXml的类中?
提前致谢.
java ×7
android ×3
xml ×2
annotations ×1
barcode ×1
camera ×1
collections ×1
html5 ×1
ios ×1
javascript ×1
jaxb ×1
json ×1
rss ×1
xml-parsing ×1