【发布时间】:2012-04-16 18:35:21
【问题描述】:
我正在努力解决 Android 上的一个奇怪问题。
我有一个 ListView,其中包含用于列表元素的自定义视图。此自定义视图包含 ProgressBar 和 RadioButton。 Here's a nice screenshot.
每当我检查收音机并启动动作模式时,所有进度条都会消失。 Here's another screenshot.
如果屏幕方向改变,或者我将键盘滑开,一切都会恢复正常。
现在我看到很多关于这类问题的帖子,与适配器回收视图有关。但是,调用ListView.invalidateViews 没有任何效果。有没有办法强制完全刷新整个 ListView?
这是我的适配器代码:
public class SimpleContactsCursorAdapter extends SimpleCursorAdapter {
public SimpleContactsCursorAdapter(Context context, int layout, Cursor c, String[] from,
int[] to, int flags) {
super(context, layout, c, from, to, flags);
}
@Override
public void bindView(View view, Context context, Cursor cursor) {
TextView nameView = (TextView) view.findViewById(R.id.contact_item_name);
TextView callView = (TextView) view.findViewById(R.id.contact_call_text);
ProgressBar progressBar = (ProgressBar) view.findViewById(R.id.contact_item_progress);
String name = cursor.getString(Contact.Columns.COLUMN_INDEX_NAME);
int delta = cursor.getInt(Contact.Columns.COLUMN_INDEX_DELTA);
String callString;
nameView.setText(name);
if (delta >= 0) {
callString = getString(R.string.call_in, delta);
}
else {
callString = getString(R.string.days_late, Math.abs(delta));
progressBar.setProgressDrawable(mResources.getDrawable(R.drawable.late_progress_bar));
}
callView.setText(callString);
progressBar.setProgress(Math.abs(delta));
}
};
【问题讨论】:
标签: android list listview progress-bar