如何在listView的行中交替设置不同的图像?

时间:2011-08-18 14:28:37

标签: android

我有一个listview,我从Twitter获取数据,我也在listView中显示它, 但我想在listView的不同行显示不同的图像。

我使用convert-view.setBackGroundResource(R.drawable.strip1);,它在所有行中重复此图像,但我想要交替设置它。怎么可能?

4 个答案:

答案 0 :(得分:1)

使用这样的适配器,将List替换为您需要的。

/**
 * Handles the listView.
 */
private class ListAdapter extends ArrayAdapter<Call> {

    private ArrayList<List> items;

    public ListAdapter(Context context, int textViewResourceId,
            ArrayList<List> items) {
        super(context, textViewResourceId, items);
        this.items = items;
    }

    /**
     * Returns the View populated with data.
     */
    @Override
    public View getView(int position, View convertView, ViewGroup parent) {
        View v = convertView;
        if (v == null) {
            LayoutInflater vi = (LayoutInflater) getSystemService(Context.LAYOUT_INFLATER_SERVICE);
            v = vi.inflate(R.layout.row, null);
        }
        List l = items.get(position);
        if (l != null) {
            ImageView ci = (ImageView) v.findViewById(R.id.iv_listIcon);
        }
        return v;
    }
}

答案 1 :(得分:1)

您想要从什么标准更改图片?

例如,您可以执行以下操作:

public View getView(int position, View convertView, ViewGroup parent) {
    MyCell resultView = (MyCell) convertView;
    if (convertView == null) {
        LayoutInflater inflater = (LayoutInflater) MyActivity.this.getApplicationContext().getSystemService(Context.LAYOUT_INFLATER_SERVICE);
        convertView = inflater.inflate(R.layout.mycell, null);
    }
    if (position % 2 == 0) {
        convert-view.setBackGroundResource(R.drawable.strip1);
    } else {
        convert-view.setBackGroundResource(R.drawable.strip2);
    }
    return resultView;
}

根据单元格的位置奇偶校验来获得不同的背景。

答案 2 :(得分:0)

使用以下位置:

getView(int position, View convertView, ViewGroup parent)

并做这样的事情

if(position%2 == 0) {
    convert-view.setBackGroundResource(R.drawable.strip1);
} else {
    convert-view.setBackGroundResource(R.drawable.strip2);
}

答案 3 :(得分:0)

看看List14这就是一个例子。它使用您自己的自定义适配器,然后根据位置交替显示图片,在这种情况下,如果它是偶数行或奇数行。

看一下getView方法的这一部分:

// Bind the data efficiently with the holder.
        holder.text.setText(DATA[position]);
        holder.icon.setImageBitmap((position & 1) == 1 ? mIcon1 : mIcon2);