我不太清楚几个Android /res/layout文件夹所扮演的角色.
layout:总体布局
layout-port:小部件的布局,必须更改为纵向方向
layout-land:窗体小部件必须更改为横向方向
例如,在Home示例应用程序中,在layout-port和layout-land文件夹下只有一个home.xml文件.
我明白了吗?
我想在更改方向时保存/恢复一个List<Contact>实例ListView; Contact是要在自定义数组适配器中显示的项目.
我在onSaveInstanceState(Bundle savingInstanceState)活动方法中保存适配器的基础列表:
savingInstanceState.putSerializable(""+R.id.contactList, (Serializable)adapter.contacts());
Run Code Online (Sandbox Code Playgroud)
然后在onRestoreInstanceState(Bundle savedInstanceState)我恢复并设置适配器:
List<Contact> contacts =
(List<Contact>)savedInstanceState.getSerializable(""+R.id.contactList);
ContactListAdapter adapter =
new ContactListAdapter((Context)this, android.R.layout.simple_list_item_1, contacts);
contactList.setAdapter(adapter);
adapter.notifyDataSetChanged();
Run Code Online (Sandbox Code Playgroud)
这是正确的方法吗?
你有更好/更聪明的解决方案吗?
谢谢
在发布这篇文章之前我搜索了一下,我在dbunit-user档案中查找了一下,还有一些在DbUnit错误列表中查找,但我找不到找到的内容.不幸的是,这里的答案也没有帮助我.
我正在使用DbUnit 2.4.8与MySQL 5.1.x在setUp中填充一些JForum表.问题首先出现在此脚本创建的jforum_users表中
CREATE TABLE `jforum_users` (
`user_id` INT(11) NOT NULL AUTO_INCREMENT,
`user_active` TINYINT(1) NULL DEFAULT NULL,
`username` VARCHAR(50) NOT NULL DEFAULT '',
`user_password` VARCHAR(32) NOT NULL DEFAULT '',
[...]
PRIMARY KEY (`user_id`)
)
COLLATE='utf8_general_ci'
ENGINE=InnoDB
ROW_FORMAT=DEFAULT
AUTO_INCREMENT=14
Run Code Online (Sandbox Code Playgroud)
执行REFRESH作为数据库设置操作会引发以下异常.
org.dbunit.dataset.NoSuchColumnException: jforum_users.USER_ID -
(Non-uppercase input column: USER_ID) in ColumnNameToIndexes cache
map. Note that the map's column names are NOT case sensitive.
at org.dbunit.dataset.AbstractTableMetaData.getColumnIndex(AbstractTableMetaData.java:117)
at org.dbunit.operation.AbstractOperation.getOperationMetaData(AbstractOperation.java:89)
at org.dbunit.operation.RefreshOperation.execute(RefreshOperation.java:98)
at org.dbunit.AbstractDatabaseTester.executeOperation(AbstractDatabaseTester.java:190)
at org.dbunit.AbstractDatabaseTester.onSetup(AbstractDatabaseTester.java:103)
at net.jforum.dao.generic.AbstractDaoTest.setUpDatabase(AbstractDaoTest.java:43)
Run Code Online (Sandbox Code Playgroud)
我查看了AbstractTableMetaData.java消息来源,似乎没有什么 - 似乎是错误的.方法 …
我刚刚为我的Android应用程序配置了测试项目以使用Robolectric.我跟着Eclipse Quick Start.执行我简单的第一次测试时会出现异常.
java.lang.RuntimeException: java.lang.NullPointerException
at com.xtremelabs.robolectric.res.ResourceLoader.init(ResourceLoader.java:93)
at com.xtremelabs.robolectric.res.ResourceLoader.getStringValue(ResourceLoader.java:271)
at com.xtremelabs.robolectric.shadows.ShadowResources.getString(ShadowResources.java:56)
at android.content.res.Resources.getString(Resources.java)
at org.xxx.mobile.android.teldir.app.TelephoneDirectoryTest.searchButtonLabelShouldBeGo(TelephoneDirectoryTest.java:22)
[...]
Caused by: java.lang.NullPointerException
at com.xtremelabs.robolectric.res.StringResourceLoader.getValue(StringResourceLoader.java:17)
at com.xtremelabs.robolectric.res.StringArrayResourceLoader.processNode(StringArrayResourceLoader.java:39)
at com.xtremelabs.robolectric.res.XpathResourceXmlLoader.processResourceXml(XpathResourceXmlLoader.java:27)
at com.xtremelabs.robolectric.res.DocumentLoader.loadResourceXmlFile(DocumentLoader.java:58)
at com.xtremelabs.robolectric.res.DocumentLoader.loadResourceXmlDir(DocumentLoader.java:52)
at com.xtremelabs.robolectric.res.DocumentLoader.loadResourceXmlDir(DocumentLoader.java:39)
at com.xtremelabs.robolectric.res.ResourceLoader.loadValueResourcesFromDir(ResourceLoader.java:142)
at com.xtremelabs.robolectric.res.ResourceLoader.loadValueResourcesFromDirs(ResourceLoader.java:136)
at com.xtremelabs.robolectric.res.ResourceLoader.loadValueResources(ResourceLoader.java:109)
at com.xtremelabs.robolectric.res.ResourceLoader.init(ResourceLoader.java:85)
at com.xtremelabs.robolectric.res.ResourceLoader.getStringValue(ResourceLoader.java:271)
at com.xtremelabs.robolectric.shadows.ShadowResources.getString(ShadowResources.java:56)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at com.xtremelabs.robolectric.bytecode.ShadowWrangler.methodInvoked(ShadowWrangler.java:87)
at com.xtremelabs.robolectric.bytecode.RobolectricInternals.methodInvoked(RobolectricInternals.java:110)
at android.content.res.Resources.getString(Resources.java)
[...]
Run Code Online (Sandbox Code Playgroud)
测试如下.
import static org.junit.Assert.assertEquals;
import org.junit.Before;
import org.junit.Test;
import org.junit.runner.RunWith;
import com.xtremelabs.robolectric.RobolectricTestRunner;
@RunWith(RobolectricTestRunner.class)
public class TelephoneDirectoryTest {
private TelephoneDirectory …Run Code Online (Sandbox Code Playgroud) 有没有办法'清理'AVD?
我可以只删除并重新创建它吗?
这个问题是因为我正在开发一个自定义布局ListView,我无法看到我正在应用的更新.
我也试图卸载该应用程序,以清理并重新运行它失败.
我正在尝试使用Flash Builder 4作为IDE对Flex项目进行编组.我正在使用flexmojos 4.0-beta-7和flex sdk 4.5.0.19786.
在我的pom.xml身上:
<build>
<sourceDirectory>${basedir}/src/main/flex</sourceDirectory>
...
</build>
Run Code Online (Sandbox Code Playgroud)
我有这个目录结构${basedir}/src/main/flex/assets/icons/**.png.
我有${basedir}/pom.xml.我将OpenScales fx示例作为我项目的模型.
FlashBuilder正常编译,但会引发$>mvn clean package大量unable to resolve 'assets/icons/*.png' for transcoding错误.
是否assets必须明确添加文件夹才能进行编译?怎么样?
我必须为子类实现一种分页ListView.当用户向下滚动列表时,滚动结束并且他查看最后一行,我必须请求下一页数据,如果有的话.向上滚动/第一行/上一页同样的事情.
public class ContactList extends ListView implements OnGestureListener {
GestureDetector gestureDetector;
public ContactList(Context context) {
super(context);
gestureDetector = new GestureDetector(this);
}
//Other ctors here...
}
Run Code Online (Sandbox Code Playgroud)
然后我将一个GestureDetector附加到ListView,转发给它所有的触摸.
public boolean onTouchEvent(MotionEvent ev) {
return gestureDetector.onTouchEvent(ev);
}
Run Code Online (Sandbox Code Playgroud)
在我的OnGestureListener.onScroll()第一行/最后一行是否可以使用getFirst/LastVisiblePosition()?
也许在滚动发生之前调用此方法?
感谢您的任何帮助.