我想有一个listView,第一个列表项目将有一个红色的背景,第二个将有black.Is那可能吗?如果是的话,我将如何创建自定义列表适配器? 谢谢!!ListView与两个不同的列表项目
|Black item|
|Red item|
|Black item|
|Red item|
|Black item|
等
我想有一个listView,第一个列表项目将有一个红色的背景,第二个将有black.Is那可能吗?如果是的话,我将如何创建自定义列表适配器? 谢谢!!ListView与两个不同的列表项目
|Black item|
|Red item|
|Black item|
|Red item|
|Black item|
等
当你有public View getView(int position, View convertView, ViewGroup parent)
方法,使其适用于不同风格的每个position %2 == 0
。这样,你可以很容易地使这些项目不同:)
我希望这有助于。
你应该覆盖你的arrayadapter中的getView。传递给此方法的参数之一是一个位置。因此,您可以执行位置%2来确定该行是偶数还是奇数。取决于你想要做什么,你可以改变你可以膨胀两个完全不同的布局。
这是我最新项目的适配器中的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;
}
我如何初始化itemList我的list_adapter类? – 2012-03-13 13:16:10
如果我想使用两个不同的PNG的背景,而不是两种不同的颜色? – 2012-03-12 17:59:11
正如我在我的回答中所提到的那样,您确实可以灵活地在列表中的每个位置完成您喜欢的任何操作。当你扩展'BaseAdapter'时,除了编写'getView'方法外,你很少需要做的,毕竟这是主要的。 – dldnh 2012-03-12 18:05:06
我想在每个列表项目具有相同的布局,但使用不同的图像作为背景..我可以这样做吗? – 2012-03-13 13:19:26