我遇到了这个问题,我需要在列表视图中单击项目时更改文本视图背景的颜色,并保持该颜色直到我单击其他项目。
谢谢致以亲切的问候。
您应该在getView()方法中执行此操作。每次单击项目时,都应该重新设置适配器并重新加载列表。这就是我在没有看到你的代码的情况下能告诉你的全部内容。
嘿,这看起来与这个问题类似:Android列表查看所选项目保持突出显示
您需要使用绘图控件来控制基于状态的背景颜色。
你可以试试我的想法:创建整数变量,将保存您在onItemClick 中的位置
public class Activity implements onItemClickListener{
private int prevPosition;
.....
list.setOnItemClickListener(new OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent, View view, int position,
long id) {
prevPosition = position;
//call your adapter here then use notifyDataSetChanged();
}
});
CustomAdapter{
......
getView(int position, View convertView, ViewGroup parent){
//setCondition
if(prevPosition == position){
//do something here for your selected item list
textView.setBackground( getResources().getDrawable(R.drawable.selectedBackground));
}
else{
///do something here for unselected list item
layout.setBackground( getResources().getDrawable(R.drawable.unselectedBackground));
}