Android颜色行

Android颜色行,android,listview,row,Android,Listview,Row,有人知道如何在创建listview时为每一行的背景上色吗 我有一个arraylist,它是从我的数据库中提取出来的,并在布局中填充一个listview 我怀疑可能有一种方法可以用simpleadaptor实现,但我想不出来 任何帮助都将不胜感激:) @覆盖 创建时受保护的void(Bundle savedInstanceState){ //TODO自动生成的方法存根 super.onCreate(savedInstanceState); requestWindowFeature(窗口。功能\u无

有人知道如何在创建listview时为每一行的背景上色吗

我有一个arraylist,它是从我的数据库中提取出来的,并在布局中填充一个listview

我怀疑可能有一种方法可以用simpleadaptor实现,但我想不出来

任何帮助都将不胜感激:)

@覆盖
创建时受保护的void(Bundle savedInstanceState){
//TODO自动生成的方法存根
super.onCreate(savedInstanceState);
requestWindowFeature(窗口。功能\u无\u标题);
setContentView(R.layout.item_列表);
//从Intent读取var
Intent=getIntent();
最终字符串ListID=intent.getStringExtra(“ListID”);
golbalItemID=ListID;
ivAdd=(ImageView)findViewById(R.id.ivAdd);
ivCancel=(ImageView)findViewById(R.id.ivCancel);
tvTotItems=(TextView)findViewById(R.id.tvTotItems);
最终myDBClass myDb=新的myDBClass(此);
final ArrayList MebmerList=myDb.SelectAllItemData(ListID);
myData=myDb.SelectItemData(Integer.parseInt(ListID.toString());
//列表视图1
最终ListView lisView1=(ListView)findViewById(R.id.listView1);
registerForContextMenu(lisView1);
mysadap;
sAdap=newMyAdapter(ListItems.this,MebmerList,R.layout.activity_列,新字符串[]{“Name”,“Price”,“Quan”},新int[]{R.id.ColName,R.id.ColTel,R.id.ColQuan});
lisView1.setAdapter(sAdap);
lisView1.setOnItemClickListener(新的OnItemClickListener(){
public void onItemClick(AdapterView myAdapter、View myView、int position、long mylng){
int-iChk=0;
//显示数据
字符串arrData[]=myDb.SelectItemData((MebmerList.get(position.get(“ItemID”).toString());
如果(arrData!=null)
{
iChk=Integer.parseInt(arrData[4]);
}
if(iChk==1)
{
ischkCheck(Integer.parseInt(MebmerList.get(position.get(“ItemID”).toString()),0);
更改颜色(lisView1,位置,255,255,255);
System.out.println(“POSITION!ichk=1”+myAdapter.getItemAtPosition(POSITION.toString());
setTitle(myAdapter.getItemAtPosition(position.toString());
}
else if(iChk==0)
{
ischkCheck(Integer.parseInt(MebmerList.get(position.get(“ItemID”).toString()),1);
改变颜色(lisView1,位置,155,155,138);
System.out.println(“POSITION!ichk=0”+myAdapter.getItemAtPosition(POSITION.toString());
}
}});
ivAdd.setOnClickListener(新视图.OnClickListener(){
公共void onClick(视图v){
Intent newActivity=newintent(ListItems.this,AddItem.class);
newActivity.putExtra(“ListID”,ListID);
星触觉(新活动);
完成();
}
});
ivCancel.setOnClickListener(新视图.OnClickListener(){
公共void onClick(视图v){
Intent newActivity=newintent(ListItems.this,MenuScreen.class);
星触觉(新活动);
完成();
}
});

如@Nikita Beloglazov所述,您可以通过实现自定义ArrayAdapter,将着色方案置于getView覆盖方法中来实现。请参阅。

如@Nikita Beloglazov所述,您可以通过实现自定义ArrayAdapter,将着色方案置于getView覆盖方法中来实现。请参阅。

创建
自适应er
类,并控制其中每一行的颜色,然后将其设置为
列表视图的适配器
下面是我的一个项目的示例代码,请检查
getView
函数:

public class ListAdapter extends BaseAdapter {

    private LayoutInflater myInflater;
    private List<Poet> list;

    public ListAdapter(Context context) {
        super();
        myInflater = LayoutInflater.from(context);

        Log.d("Ganjoor", "Data passed to the adapter.");

    }

    static class ViewHolder {
        TextView tvName;
    }

    public void setData(List<Poet> list) {
        this.list = list;
    }

    @Override
    public int getCount() {

        return list.size();
    }

    @Override
    public Poet getItem(int position) {

        return (null == list) ? null : list.get(position);
    }

    @Override
    public long getItemId(int position) {

        return position;
    }

    @Override
    public View getView(int position, View convertView, ViewGroup parent) {
        ViewHolder holder;

        if (convertView == null) {
            convertView = myInflater.inflate(R.layout.list_adapter, parent,
                    false);
            holder = new ViewHolder();
            holder.tvName = (TextView) convertView.findViewById(R.id.tvName);

            convertView.setTag(holder);
        } else {
            holder = (ViewHolder) convertView.getTag();
        }

        holder.tvName.setTag(list.get(position).getId());
        holder.tvName.setText(list.get(position).getName());
        // Log.d("Ganjoor", "Adapter: " + list.get(position).getName());

        if (position % 2 == 0) {
            convertView.setBackgroundResource(R.drawable.grad_blue);
        } else {
            convertView.setBackgroundResource(R.drawable.row_style);
        }

        return convertView;
    }

}
公共类ListAdapter扩展了BaseAdapter{
私人充气机;
私人名单;
公共ListAdapter(上下文){
超级();
myInflater=LayoutInflater.from(上下文);
Log.d(“Ganjoor”,“传递给适配器的数据”);
}
静态类视窗夹{
文本视图tvName;
}
公共无效设置数据(列表){
this.list=列表;
}
@凌驾
public int getCount(){
返回list.size();
}
@凌驾
公共项目(内部位置){
返回(null==list)?null:list.get(位置);
}
@凌驾
公共长getItemId(int位置){
返回位置;
}
@凌驾
公共视图getView(int位置、视图转换视图、视图组父视图){
视窗座;
if(convertView==null){
convertView=myInflater.充气(R.layout.list_适配器,父级,
假);
holder=新的ViewHolder();
holder.tvName=(TextView)convertView.findViewById(R.id.tvName);
convertView.setTag(支架);
}否则{
holder=(ViewHolder)convertView.getTag();
}
holder.tvName.setTag(list.get(position.getId());
holder.tvName.setText(list.get(position.getName());
//Log.d(“Ganjoor”,“Adapter:”+list.get(position.getName());
如果(位置%2==0){
convertView.setBackgroundResource(R.drawable.grad_blue);
}否则{
convertView.setBackgroundResource(R.drawable.row_样式);
}
返回视图;
}
}

创建一个
适配器
类,控制其中每一行的颜色,然后将其设置为
列表视图的适配器
下面是我的一个项目的示例代码,请检查
getView
函数:

public class ListAdapter extends BaseAdapter {

    private LayoutInflater myInflater;
    private List<Poet> list;

    public ListAdapter(Context context) {
        super();
        myInflater = LayoutInflater.from(context);

        Log.d("Ganjoor", "Data passed to the adapter.");

    }

    static class ViewHolder {
        TextView tvName;
    }

    public void setData(List<Poet> list) {
        this.list = list;
    }

    @Override
    public int getCount() {

        return list.size();
    }

    @Override
    public Poet getItem(int position) {

        return (null == list) ? null : list.get(position);
    }

    @Override
    public long getItemId(int position) {

        return position;
    }

    @Override
    public View getView(int position, View convertView, ViewGroup parent) {
        ViewHolder holder;

        if (convertView == null) {
            convertView = myInflater.inflate(R.layout.list_adapter, parent,
                    false);
            holder = new ViewHolder();
            holder.tvName = (TextView) convertView.findViewById(R.id.tvName);

            convertView.setTag(holder);
        } else {
            holder = (ViewHolder) convertView.getTag();
        }

        holder.tvName.setTag(list.get(position).getId());
        holder.tvName.setText(list.get(position).getName());
        // Log.d("Ganjoor", "Adapter: " + list.get(position).getName());

        if (position % 2 == 0) {
            convertView.setBackgroundResource(R.drawable.grad_blue);
        } else {
            convertView.setBackgroundResource(R.drawable.row_style);
        }

        return convertView;
    }

}
公共类ListAdapter扩展了BaseAdapter{
私人充气机;
私人名单;
公共ListAdapter(上下文){
超级();