2015-02-23 223 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);