我希望在getView()
中设置所选项目,但是我的列表中的每个项目都已选中。我用吐司测试过,显示的是正确的,所以条件正常。条件检查以查看特定项目的DB条目是否设置为true(因此被选中)。
@Override
public View getView(int position, View convertView, ViewGroup parent)
{
if(isItemSelected.equals("true")){
listviewTitles.setBackgroundColor(0xAAAAFFFF);
}
else if (isItemSelected.equals("false")){
// Default color
}
}
答案 0 :(得分:1)
您应该按照以下条件更新背景颜色;
listviewTitles.setBackgroundColor(isItemSelected.equals("true") ? selectedColor : unSelectedColor);
答案 1 :(得分:0)
试试这个并在代码中进行这些更改,希望它能够解决。
Declare @DOB varchar(20)
Set @DOB ='1989-12-15 10:00:01' SELECT CAST(DATEDIFF(YEAR,@DOB,GETDATE()) AS VARCHAR(10)) + 'Years'
+ CAST(DATEDIFF(MONTH,@DOB,GETDATE())-(DATEDIFF(YEAR,@DOB,GETDATE())*12) AS VARCHAR(10)) + 'Months'
+ CAST(DATEDIFF(dd,@DOB,GETDATE())-(DATEDIFF(year,@DOB,GETDATE())*1461/4) AS VARCHAR(10)) +'Days'
请试试这个
答案 2 :(得分:0)
我相信我有一个满足您要求的解决方案,
将此代码粘贴到您的视图文件中
SparseBooleanArray singleChecked;
@Override
public void onItemClick(AdapterView<?> parent, View view, int position,
long id) {
if (position != singleListSelectedPosition) {
singleListSelectedPosition = position;
int totalCount = lvSingleSelect.getCount();
for (int i = 0; i < totalCount; i++) {
if (i == position) {
boolean stat = singleChecked.get(position, false);
singleChecked.put(position, !stat);
} else {
singleChecked.put(i, true);
}
}
adapter.setChecked(singleChecked);
}
}
这是你的适配器类代码:
public void setChecked(SparseBooleanArray ch) {
singleChecked = ch;
notifyDataSetChanged();
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
if (singleChecked.get(position, false)) {
convertView.setBackgroundColor(getResources()
.getColor(R.color.titlebar_background_color));
} else {
convertView.setBackgroundColor(
getResources().getColor(R.color.emphasis_color));
}
如果您有任何问题,请告诉我,随时乐意为您提供帮助。
答案 3 :(得分:0)
我认为你应该尝试在arraylist中添加数据时添加类似boolean的额外值。 true表示选中,false表示未选中。最初为所有人添加false。然后当你点击listviewTitles
int positionClicked;
listviewTitles.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
for (int i = 0; i < bean_List.size(); i++) {
if (i == position) {
positionClicked = position;
bean_List.get(position).setIsClicked(true);
notifyDataSetChanged();
//Do your task here...
} else {
bean_List.get(i).setIsClicked(false);
notifyDataSetChanged();
}
}
});
在getView()中使用: -
if (bean_List.get(position).getIsClicked() == true) {
listviewTitles.setBackgroundColor(0xAAAAFFFF);
//change color accordingly
} else {
listviewTitles.setBackgroundColor(0xAAAAFFFF);
//change color accordingly
}