Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/221.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在Android BaseAdapter中处理行背景?_Android_Baseadapter - Fatal编程技术网

如何在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块。