我想編寫一個測試,測試我的佈局中的字段與生成的業務對象之間的正確映射關係。但是,當我嘗試將值設置爲我的文本字段時,出現錯誤,說我不應該嘗試將值設置爲來自另一個線程的文本字段。所以基本上我無法將活動設置爲可以嘗試創建業務對象的狀態。將值設置爲TextField
但是如何編寫這樣的測試呢?我更喜歡如果我不必向僅支持測試的活動添加代碼,但是我可能無法避免這種情況?
在此先感謝 羅蘭
我想編寫一個測試,測試我的佈局中的字段與生成的業務對象之間的正確映射關係。但是,當我嘗試將值設置爲我的文本字段時,出現錯誤,說我不應該嘗試將值設置爲來自另一個線程的文本字段。所以基本上我無法將活動設置爲可以嘗試創建業務對象的狀態。將值設置爲TextField
但是如何編寫這樣的測試呢?我更喜歡如果我不必向僅支持測試的活動添加代碼,但是我可能無法避免這種情況?
在此先感謝 羅蘭
查看對象只能從UI線程訪問。您必須嘗試從您在其他地方創建的工作線程中設置這些值。
你應該看看的AsyncTask類,看看是否能解決你的問題(它有是在UI線程像onResult,onProgress,......執行的功能)
另一種可能性是使用Activity.runOnUiThread(Runnable)函數。
這就是我可以說的所有細節。也許如果你發佈一些示例代碼,你會得到更準確的答案。
凡在你的活動是你想設置的文本字段?
如果你只是需要一個簡單的測試,你可以通過onCreate方法。下面是我的功能代碼snippit:
public void onCreate(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
_dateView = (TextView) findViewById(R.id.ScheduleDate);
_dateView.setText("TODAY");
}
我使用runOnUiThread和Thread.sleep(50)解決了該問題,以允許更新ui。 – Roland 2011-03-08 20:09:19