2

。這是我的代碼。使用數組適配器創建listView的文本使用simple_list_item_single_choice的顏色ArrayAdapter

listView = new ListView(context); 
       ArrayAdapter<String>adapter = new ArrayAdapter<String>(context,android.R.layout.simple_list_item_single_choice, choice); 
       listView.setAdapter(adapter); 

這爲文本提供了黑色。我需要將文本顏色更改爲藍色。我們如何改變這一點。我用陣列適配器的佈局。這是代碼

listView = new ListView(context); 
       ArrayAdapter<String>adapter = new ArrayAdapter<String>(context,layout.my_single_choice, choice); 
       listView.setAdapter(adapter); 

和代碼my_single_choice.xml低於

<?xml version="1.0" encoding="utf-8"?> 
<RadioButton xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="fill_parent" 
    android:id="@+id/my_choice_radio" 
    android:layout_height="match_parent" 
    android:button="@null" 
    android:drawableRight="@android:drawable/btn_radio" 
    android:text="Option" 
    style="@style/ListItemTextColor" /> 

,並給出這不工作,我可以選擇我的所有單選按鈕。並且當clickListener不起作用時,...?我們如何解決它

+0

你試過android:textColor嗎? – Blackbelt

+1

你應該爲你的listview使用一個自定義的適配器。可能而不是單選按鈕,我認爲你需要複選框.http://stackoverflow.com/questions/16685366/customised-listview-using-arrayadapter-class-in-android/16686623#16686623。並在checkbox.xml中添加@blackbelt所告知的文本顏色 – Raghunandan

回答

4

有一些可以做到這一點的方法。這樣做的最常見的方法如下:

  • 使用自定義列表視圖(http://www.androidpeople.com/android-custom-listview-tutorial-part-1
  • 使用自定義佈局(而不是android.R命名空間內)

    在您看來,使用驗證碼:

    <?xml version="1.0" encoding="utf-8"?> 
    <TextView xmlns:android="http://schemas.android.com/apk/res/android" 
        android:id="@+id/tv" 
        android:textColor="@color/font_content" 
        android:padding="5sp" 
        android:layout_width="fill_parent" 
        android:background="@drawable/rectgrad" 
        android:singleLine="true" 
        android:gravity="center" 
        android:layout_height="fill_parent"/> 
    

    在你的類,使用此代碼:

    ListView lst = new ListView(context); 
    String[] arr = {"Item 1","Item 2"}; 
    ArrayAdapter<String> ad = new ArrayAdapter<String (context,R.layout.mytextview,arr); 
    lst.setAdapter(ad); 
    
  • 我最喜歡的,壓倒一切的getView的一個ArrayAdapter

    ListView listView = (ListView) this.findViewById(R.id.listView); 
    listView.setAdapter(new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1, MobileMuni.getBookmarkStore().getRecentLocations()) { 
    @Override 
    public View getView(int position, View convertView, ViewGroup parent) { 
        TextView textView = (TextView) super.getView(position, convertView, parent); 
    
        String currentLocation = RouteFinderBookmarksActivity.this.getResources().getString(R.string.Current_Location); 
        int textColor = textView.getText().toString().equals(currentLocation) ? R.color.holo_blue : R.color.text_color_btn_holo_dark; 
        textView.setTextColor(RouteFinderBookmarksActivity.this.getResources().getColor(textColor)); 
    
        return textView; 
        } 
    }); 
    

同樣的方法,這是從這裏討論的結果是:How to change text color of simple list item

0

如果你真的想保持簡單,不想添加任何新的佈局或文件,你可以這樣做來改變simple_list_item的顏色。

ArrayAdapter<String> adapter = new ArrayAdapter<String>(this, 
      android.R.layout.simple_list_item_1, android.R.id.text1, listItems) { 
     @Override 
     public View getView(int position, View convertView, ViewGroup parent) { 
      TextView textView = (TextView) super.getView(position, convertView, parent); 
      // Set the color here 
      textView.setTextColor(Color.parseColor("#000000")); 
      return textView; 
     } 
    }; 
listView.setAdapter(adapter); 
相關問題