2012-03-12 55 views
1

我想有一个listView,第一个列表项目将有一个红色的背景,第二个将有black.Is那可能吗?如果是的话,我将如何创建自定义列表适配器? 谢谢!!ListView与两个不同的列表项目

|Black item| 


|Red item| 


|Black item| 

|Red item| 

|Black item| 

+0

如果我想使用两个不同的PNG的背景,而不是两种不同的颜色? – 2012-03-12 17:59:11

+0

正如我在我的回答中所提到的那样,您确实可以灵活地在列表中的每个位置完成您喜欢的任何操作。当你扩展'BaseAdapter'时,除了编写'getView'方法外,你很少需要做的,毕竟这是主要的。 – dldnh 2012-03-12 18:05:06

+0

我想在每个列表项目具有相同的布局,但使用不同的图像作为背景..我可以这样做吗? – 2012-03-13 13:19:26

回答

1

当你有public View getView(int position, View convertView, ViewGroup parent)方法,使其适用于不同风格的每个position %2 == 0。这样,你可以很容易地使这些项目不同:)

我希望这有助于。

2

你应该覆盖你的arrayadapter中的getView。传递给此方法的参数之一是一个位置。因此,您可以执行位置%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; 
} 
+0

我如何初始化itemList我的list_adapter类? – 2012-03-13 13:16:10