【发布时间】:2018-04-07 16:44:01
【问题描述】:
我在使用列表视图突出显示单个项目时遇到了一些问题。我在下面的代码中创建了一个匿名适配器,但是当显示列表时,有几个项目具有突出显示/粗体。日志跟踪显示粗体/背景仅被调用一次,但有几个项目具有粗体,但只有正确的项目具有背景颜色设置。我为调试分离了背景颜色设置,但如果我只使用一个 if(position==selection) 检查结果是一样的。
请注意,这不是交互式列表视图,不需要 onclicklistener。
我将非常感谢任何帮助。提前谢谢你。
ArrayAdapter<String> adapter = new ArrayAdapter<String>(this,
android.R.layout.simple_list_item_1, times) {
@Override
public View getView(int position, View cview, ViewGroup group) {
int count = 0; //used for debugging
View view = super.getView(position, cview, group);
TextView tv = (TextView)view.findViewById(android.R.id.text1);
Typeface tf = tv.getTypeface();
Log.d("log", "position = " + position);
if(position == selection) {
tv.setTypeface(tf, Typeface.BOLD);
Log.d("log", "BOLD" + position + "count=" + (count ++));
} else {
tv.setTypeface(tf, Typeface.NORMAL);
}
if(position == selection) {
view.setBackgroundColor(Color.LTGRAY);
Log.d("log", "Bkgnd " + position + "count: " + count);
} else {
view.setBackgroundColor(Color.WHITE);
}
return view;
}
};
【问题讨论】:
-
正确地重新格式化您的代码。
-
代码重新格式化。
标签: android listview android-arrayadapter