Android Alternate row Colors in ListView

前端 未结 3 1678
旧巷少年郎
旧巷少年郎 2020-11-29 01:54
public class ListView extends  ListActivity {

static String item;

public void onCreate(Bundle icicle) {
            super.onCreate(icicle);

            ArrayAdapt         


        
相关标签:
3条回答
  • 2020-11-29 02:05

    The Background color for a custom listview row can be set with

    row.setBackgroundResource(R.color.list_bg_2)
    

    method in custom listview adapter in

    getView(int position, View convertView, ViewGroup parent)
    

    I have tried many things like row.setBackgroundColor(0xFF00DD) but couldn't get it done,

    here list_bg_2 is a color set res/values/color.xml

    <?xml version="1.0" encoding="utf-8"?>
    <resources>
        <color name="list_bg_1">#ffffff</color>
        <color name="list_bg_2">#fef2e8</color>
    </resources>
    
    0 讨论(0)
  • 2020-11-29 02:14
    if (position % 2 == 0) {
    
        rowView.setBackgroundColor(Color.parseColor("#A4A4A4"));
    
    } else {
    
        rowView.setBackgroundColor(Color.parseColor("#FFBF00"));
    
    }
    
    0 讨论(0)
  • 2020-11-29 02:22

    Here is how to do that.

    My example code is given here in brief:

    Override the getView method in your adapter:

    @Override
    public View getView(int position, View convertView, ViewGroup parent) {  
    View view = super.getView(position, convertView, parent);  
    if (position % 2 == 1) {
        view.setBackgroundColor(Color.BLUE);  
    } else {
        view.setBackgroundColor(Color.CYAN);  
    }
    
    return view;  
    }
    

    Override ArrayAdapter and override getView method there.

    So if your adapter is something like this:

    public class MyAdapter extends ArrayAdapter
    

    Your ListActivity will change like this:

     ArrayAdapter<String> adapter = new MyAdapter<String>(this,
                    android.R.layout.simple_list_item_1, Str.S);
    

    Here's an example about overriding ArrayAdapter.

    0 讨论(0)
提交回复
热议问题