2015-02-23 172 views
0

这是我的列表视图代码我怎样才能改变列表视图的颜色如何更改ListView的字体颜色

public class eat extends ActionBarActivity { 

    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_eat); 

     String [] Hotels ={"Deer Park","Araliya","Royal Lotus","Kandalama"}; 
     ListAdapter hoteladapter = new ArrayAdapter<String>(this,android.R.layout.simple_list_item_1,Hotels); 
     ListView hotellist= (ListView)findViewById(R.id.lv); 
     hotellist.setAdapter(hoteladapter); 

     // hotellist.setc 
    } 
+0

只需使用'textView.setColor(R.color.your_color);在.class文件'每TextView的你在列表中设置 – Apurva 2015-02-23 18:07:43

回答

0

您需要以某种方式访问​​保存文本的TextView对象。

您有几种选择:

  • 使用自定义适配器
  • 使用自定义项目布局
  • 进入快速和肮脏的方式:

    ListAdapter hoteladapter = new ArrayAdapter<String>(this, 
         android.R.layout.simple_list_item_1, Hotels) { 
        @Override 
        public View getView(int position, View convertView, ViewGroup parent) { 
         View view = super.getView(position, convertView, parent); 
         TextView tv = (TextView) view.findViewById(android.R.id.text1); 
         tv.setTextColor(Color.RED); 
    
         return view; 
        } 
    }; 
    
+0

我不会推荐后者,因为它没有重用行,因此资源效率低下。 – Marcus 2015-02-23 18:09:21

+1

@Marcus你错了。 ListAdapter自动重新使用这些行。然而,多次调用'findViewById'可能会很昂贵,但由于该列表只包含4个项目,所以差别几乎不可见。 – Simas 2015-02-23 18:12:27

0

你必须实现自己的ListAdapter,填补你的数据项进入自定义视图。网上有大量的教程。谷歌搜索将有所帮助。

1

你可以指定您的列表项目布局如下

yourtextviewlayout.xml:

<TextView xmlns:android="http://schemas.android.com/apk/res/android" 
    android:id="@+id/textView" 
    android:textColor="@color/your_color" 
    android:layout_width="fill_parent" 
    android:layout_height="fill_parent"/> 

,并提供此布局您ArrayAdapter

ListAdapter hoteladapter = new ArrayAdapter<String>(this,R.layout.yourtextviewlayout,Hotels);