我有ListView
使用SimpleCursorAdapater
从SQLlite
数据库中提取数据,以填充TextView
中的ListView
。
我允许用户在运行时动态地增加或减少TextSize
中TextView
的{{1}} - 并非所有人都可以在没有眼镜的情况下阅读标准字体大小#39;让他们的读者与他们在一起。
我发现这样做的唯一方法是重新获取光标;在适配器上调用ListView
;并使用viewBinder修改TextSize,如下所示。
它有效 - 但肯定这不是正确/最有效的方法 - 看起来我应该能够在没有获取新光标的情况下执行此操作,以便在有人选择增加/减小字体大小时触发viewBinder 。有人能告诉我应该怎么做吗?
这是我现在使用的代码......
选择菜单项以增加字体大小...
changeCursor()
TextSize++;
new UpdateListViewCursor().execute(); // extends AsyncTask
- 需要获取新光标
UpdateListViewCursor()
private class UpdateListViewCursor extends AsyncTask<Void, Void, Cursor> {
@Override
protected Cursor doInBackground(Void... params) {
// fetch checklist table data anew
return CreateChecklistCursor(checklistDbHelper.getReadableDatabase());
}
@Override
protected void onPostExecute(Cursor cursor) {
super.onPostExecute(cursor);
// update adapter
dataAdapter.changeCursor(cursor);
}
代码
ViewBinder()