如何在Android BaseAdapter中处理行背景?
如果从数据库获取数据的大小大于零,则我将更改行背景颜色为灰色,否则不会更改任何内容。对于第一项,我将设置默认文件夹,并保留为这些列表的列表名,同时设置与上述相同的背景。当我滚动列表时,所有基本位置都将更改。我知道这些位置滚动时正在更改。如何解决此问题 第一个位置应始终为默认列表。我给出代码片段是为了理解目的如何在Android BaseAdapter中处理行背景?,android,baseadapter,Android,Baseadapter,如果从数据库获取数据的大小大于零,则我将更改行背景颜色为灰色,否则不会更改任何内容。对于第一项,我将设置默认文件夹,并保留为这些列表的列表名,同时设置与上述相同的背景。当我滚动列表时,所有基本位置都将更改。我知道这些位置滚动时正在更改。如何解决此问题 第一个位置应始终为默认列表。我给出代码片段是为了理解目的 if(position == 0) { holder.listName.setText("Default List"); i
if(position == 0)
{
holder.listName.setText("Default List");
int c = //getting database table size
if(c == 0 )
{
holder.rowLayout.setBackgroundColor(Color.GRAY);
}
}
else
{
list =//getting lists from database(different table)
if(list!=null)
{
holder.listName.setText(list.getListName());
}
if(list size==0)
{
holder.rowLayout.setBackgroundColor(Color.GRAY);
}
}
滚动列表时会回收ListItem,这就是为什么会获得ListItem的随机背景。您必须将ListItem的背景更改为默认颜色 如下
if(list size==0)
holder.rowLayout.setBackgroundColor(Color.GRAY);
else
holder.rowLayout.setBackgroundColor(Color.BLACK);
把你的问题说得更清楚些。要理解你到底想要什么真的很难。比如,你所说的“如果从数据库中获取数据的大小大于0,则为灰色,否则不会改变任何内容”。如果数据库大小为0,你将如何将数据放入列表中?“对于第一个项目,我将设置默认文件夹,并将其保留为这些列表的列表名,同时设置与上述相同的背景。”这意味着什么?意味着默认列表始终处于第零位,并且如果任何列表项目(包括默认列表)中的元素不可用,我正在将背景颜色更改为灰色。我正在使用带有setter/getter方法的ArrayList从数据库检索日期。谢谢Sujit。给定的解决方案运行良好。我忘记了else块。