由于 Android 不支持显示日期,因此我在布局中添加了一个 TextView。
在 DatePicker 上我放了一个 onDateChangedListener。当日期更改时,我确定星期几,然后通过处理程序设置它以确保它在 UI 线程上完成:
// this is being called when the date changes on the DatePicker
public void onDateChanged(DatePicker view, final int year,
final int monthOfYear, final int dayOfMonth) {
String dayOfTheWeek = null;
// some code here to set the 'dayOfTheWeek' string
h.sendMessage(h.obtainMessage(0, dayOfTheWeek));
}
final Handler h = new Handler() {
@Override
public void handleMessage(Message msg) {
dayOfWeekTextView.setText((String)msg.obj);
}
};
我的问题:当我在小部件( Android 4.0 U I)中滚动浏览日子时,它并不流畅!我检查了问题所在,这不是我确定字符串应该是什么的方式,它实际上是setText()
处理程序中的。评论那部分 uit 一切都很好。在此处设置硬编码文本 ( dayOfWeekTextView.setText("SOMETHING');
) 也会出现同样的问题。它使DatePicker
.
真的setText()
有那么大的动作吗?Wunderlist 显示一周中的哪一天,它运行顺利,但我就是不知道他们是如何做到的。
我只在我的HTC One X
. 任何人的想法?
编辑:
我发现了为什么它在 Wunderlist 中很流畅!我使用的是和他们一样的DialogFragment。您可以在对话框上设置标题,这就是 Wunderlist 使用的而不是 TextView。所以我要使用它(看起来也更好;))
因此,在执行 'getDialog().setTitle(dayOfWeek)' 时没有问题。问题仍然存在:为什么 setText 在 UI 线程上这么慢......?