我有一个listview,我从Twitter获取数据,我也在listView中显示它, 但我想在listView的不同行显示不同的图像。
我使用convert-view.setBackGroundResource(R.drawable.strip1);
,它在所有行中重复此图像,但我想要交替设置它。怎么可能?
答案 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);