我有一个列表视图,其中包含2个textViews和一个ImageView。每当按下时,我都要对选定的行进行一些更改,以更改其布局。例如,更改文本的颜色,更改imageView,再添加另一个,等等。我为背景更改添加了自定义列表选择器。我的问题是应该在其中添加正确的侦听器:
TextView title;
TextView descr;
title = (TextView) arg1.findViewById(R.id.title);
descr = (TextView) arg1.findViewById(R.id.descr);
title.setTextColor(Color.parseColor("#189dd9"));
descr.setTextColor(Color.WHITE);
我将其添加到OnItemClickListener,并且在未选择项目时单击它之后,它可以正常工作。
在适配器内部,您可以跟踪选择了哪个项目。
int selectedItemIndex;// ArrayList<Integer> selectedItems=new ArrayList<Integer>();
现在在getView中只要写
if(position==selectedItemIndex){
//Inflate different layoout
}else{
//normal flow
}
要设置选定的项目,可以设置onItemClick侦听器并在适配器中设置此变量,也可以在getView本身内添加onClick侦听器并在其中设置此变量。
如果您想拥有相同的布局,只需在if / else内编写不同的代码
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句