动态更改Listview中的(列表项)TextView的颜色

Kan*_*ika 5 android android-layout android-listview

我在文件名browse.xml中使用ListView,如下所示.

<ListView
   android:id="@+id/listView1"
   android:layout_width="250dp"
   android:layout_height="match_parent"
   android:layout_alignParentLeft="true"
   android:layout_below="@+id/relativeLayout1" >

</ListView>
Run Code Online (Sandbox Code Playgroud)

我在onCreate()方法中填充这个listView:

files1=new ArrayList<String>();
File sdcard=Environment.getExternalStorageDirectory();
files1 =  getListFiles(new File(sdcard.getAbsolutePath()+File.separatorChar)); 
ArrayAdapter<String> fileList =new ArrayAdapter<String>(this, R.layout.row,files1);

setListAdapter(fileList);
Run Code Online (Sandbox Code Playgroud)

row.xml如下所示:

<?xml version="1.0" encoding="utf-8"?>
<TextView 
   xmlns:android="http://schemas.android.com/apk/res/android"
   android:id="@+id/rowtext"
   android:layout_width="fill_parent"
   android:layout_height="40dp"
   android:textSize="20dp" 
   android:textColor="#000000"   
   android:background="#FFFFFF"/>
Run Code Online (Sandbox Code Playgroud)

整个程序是在listView上显示sdcard的所有文件,点击任何listitem,将该文件名保存到sharedPrefernce ..现在我要更改ListView中的文件名(List items)的文本颜色在SharedPrefernce ..

[编辑]:这里使用ArrayAdapter默认构造函数列出listview中的所有项目

请给我一些建议......谢谢..

Raj*_*ddy 3

我们可以在 Adapter 的 getView() 中动态更改列表项的文本颜色。

public View getView(int position, View convertView, ViewGroup parent) {
    View row = convertView;

    if (row == null) {
        row = LayoutInflater.from(parent.getContext()).inflate(R.layout.row, null);
    }

    TextView listTitle = (TextView) row.findViewById(R.id.rowtext);
    listTitle.setTextColor(Color.parseColor("#405478"));

    return listTitle;
}
Run Code Online (Sandbox Code Playgroud)