我想编写一个测试,只测试我的布局中的字段与生成的业务对象之间的映射是否正确。但是当我尝试为我的文本字段设置值时,我得到一个错误,表示我不应该尝试将值设置为来自另一个线程的文本字段。所以基本上我不能将活动设置为我可以尝试创建业务对象的状态。
但是如何编写这样的测试?我更喜欢如果我不需要为仅支持测试的活动添加代码,但也许我无法避免这种情况?
提前致谢 罗兰
答案 0 :(得分:2)
只能从UI线程访问View对象。您必须尝试从您在其他地方创建的工作线程中设置这些值。
你应该看看AsyncTask类,看看它是否可以解决你的问题(它具有在UI线程上执行的函数,如onResult,onProgress,......)
其他可能性是使用Activity.runOnUiThread(Runnable)函数。
这就是我所说的细节。也许如果您发布一些示例代码,您将获得更精确的答案。
答案 1 :(得分:0)
您在Activity中的哪个位置尝试设置TextField?
如果您只需要一个简单的测试,可以通过onCreate方法完成。下面是我的功能代码的一个信息:
public void onCreate( Bundle savedInstanceState ){
super.onCreate( savedInstanceState );
setContentView( R.layout.main );
_dateView = (TextView) findViewById( R.id.ScheduleDate );
_dateView.setText( "TODAY" );
}