Android ListView重写BaseAdapter如何改变指定item中的TextView的颜色?
例如,要每隔两个item就将其中的TextView变成红色,如何在BaseAdapter中重写?...
例如,要每隔两个item就将其中的TextView变成红色,如何在BaseAdapter中重写?
展开
1个回答
展开全部
在类中定义一个类 继承BaseAdapter
然后重写getView
public View getView(int position, View convertView,
ViewGroup parent) {}
position 就是下标 每隔两个 就是 position%3==2
下面是例子:--------------------------------------------------------------------------------------
class MyTextAdapter extends BaseAdapter {
//自定义Adapter以内部类形式存在于MainActivity中,方便访问MainActivity中的各个变量,特别是texts数组(你要显示的数组)
private Context context;//用于接收传递过来的Context对象
public MyImgAdapter(Context context) {
super();
this.context = context;
}
@Override
public int getCount() {
return texts.length;
}
@Override
public Object getItem(int position) {
return position;
}
@Override
public long getItemId(int position) {
return position;
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
//针对每一个数据创建一个TextView实例,
TextView tv = new TextView(context);//针对外面传递过来的Context变量,
tv.setLayoutParams(new LayoutParams(80, 80));//设置大小为80*80
tv.setText(texts[position]);//设置要显示的内容
if(position%3==2){//第三个变颜色
tv.setTextColor(Color.RED);
}else{
tv.setTextColor(Color.BLACK);
}
return tv;
}
}
然后重写getView
public View getView(int position, View convertView,
ViewGroup parent) {}
position 就是下标 每隔两个 就是 position%3==2
下面是例子:--------------------------------------------------------------------------------------
class MyTextAdapter extends BaseAdapter {
//自定义Adapter以内部类形式存在于MainActivity中,方便访问MainActivity中的各个变量,特别是texts数组(你要显示的数组)
private Context context;//用于接收传递过来的Context对象
public MyImgAdapter(Context context) {
super();
this.context = context;
}
@Override
public int getCount() {
return texts.length;
}
@Override
public Object getItem(int position) {
return position;
}
@Override
public long getItemId(int position) {
return position;
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
//针对每一个数据创建一个TextView实例,
TextView tv = new TextView(context);//针对外面传递过来的Context变量,
tv.setLayoutParams(new LayoutParams(80, 80));//设置大小为80*80
tv.setText(texts[position]);//设置要显示的内容
if(position%3==2){//第三个变颜色
tv.setTextColor(Color.RED);
}else{
tv.setTextColor(Color.BLACK);
}
return tv;
}
}
本回答被提问者和网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询