我想有一个listView,第一个列表项将有一个红色背景,第二个将有黑色。这可能吗?如果是,我将如何创建自定义列表适配器? 谢谢!
|Black item|
|Red item|
|Black item|
|Red item|
|Black item|
等
答案 0 :(得分:2)
您应该在您的arrayadapter中覆盖getView。传递给此方法的参数之一是位置。所以你可以只做位置%2来确定行是偶数还是奇数。根据你想要做什么,你可以改变你可以在那里膨胀两个完全不同的布局。
答案 1 :(得分:1)
如果您使用public View getView(int position, View convertView, ViewGroup parent)
方法,则会为每个position %2 == 0
应用不同的样式。通过这种方式,您可以轻松地使这些项目彼此不同:)
我希望这会有所帮助。
答案 2 :(得分:0)
这是我最新项目适配器的getView
。我简化了它以突出显示以下几点:1。您可以使用您喜欢的任何条件来决定返回哪种视图,以及2.您可以使用LayoutInflater.inflate
来获取任何类型的视图无论如何,无论如何。
public View getView(final int position, View convertView, ViewGroup parent)
{
View v;
int n = itemList.get(position);
if (n < 0)
{
v = inflator.inflate(R.layout.layout1, null);
}
else if (n > 0)
{
v = inflator.inflate(R.layout.layout2, null);
}
else
v = inflator.inflate(R.layout.layout3, null);
return v;
}