如何更改ListView中的文本颜色?

时间:2015-12-26 13:37:29

标签: android android-listview navigation-drawer

如何在代码中更改ListView文本的颜色(在抽屉布局中)? 在我的代码listview中有各种其他布局。 我已尝试过stackoverflow中可用的各种其他代码,但似乎没有一个对我有用

<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent">

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context=".MainActivity">

    <LinearLayout
        android:id="@+id/lltoolbar"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:clickable="true"
        android:orientation="vertical">

        <include
            android:id="@+id/app_bar"
            layout="@layout/app_bar" />

    </LinearLayout>

    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_below="@+id/lltoolbar"
        android:text="@string/hello_world" />


</RelativeLayout>

<android.support.v4.widget.DrawerLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/drawerLayout"
    android:layout_marginTop="55dp"
    android:layout_width="match_parent"
    android:layout_height="match_parent">

    <FrameLayout
        android:id="@+id/mainContent"
        android:layout_width="match_parent"
        android:layout_height="match_parent" >

    </FrameLayout>

    <ListView
        android:id="@+id/drawerList"
        android:entries="@array/abcd"
        android:background="#FFFFFF"
        android:layout_width="240dp"
        android:layout_height="match_parent"
        android:layout_gravity="left" />

</android.support.v4.widget.DrawerLayout>

private Toolbar toolbar;
TextView textView;
ImageView iv;
DrawerLayout drawerLayout;
private ListView listView;
private String[] names;
@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

    toolbar = (Toolbar) findViewById(R.id.app_bar);
    textView = (TextView) findViewById(R.id.toolbar_title);
    iv = (ImageView) findViewById(R.id.ivClick);
    drawerLayout = (DrawerLayout) findViewById(R.id.drawerLayout);       

    listView = (ListView) findViewById(R.id.drawerList);
    names = getResources().getStringArray(R.array.abcd);
    listView.setAdapter(new ArrayAdapter<>(this, android.R.layout.simple_list_item_1, names));
    listView.setOnItemClickListener(this);

}

2 个答案:

答案 0 :(得分:1)

你应该为listview的每一行创建一个xml布局,然后创建一个类扩展BaseAdapter并在getview inflate xml布局内部,然后为textview设置颜色

答案 1 :(得分:0)

请按照以下步骤操作:

  1. 创建一个xml布局,该布局将显示在列表视图的每一行中。 (目前您使用的是默认的android.R.layout.simple_list-item_1布局)如下所示:
    my_listrow_layout.xml:
  2. <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
        xmlns:tools="http://schemas.android.com/tools"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:orientation="vertical">
    <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="sample text"
            android:text_color="#006699"
            android:id="@+id/list_item"/>
    </LinearLayout>
    
         

    2。在您的活动代码中,将列表适配器代码更改为:

    listView.setAdapter(new ArrayAdapter<>(this, R.layout.my_listrow_layout,
    R.id.list_item, names));
    

    my_listrow_layout是列表视图的自定义布局,R.id.list_item是listview布局中textview的id。要更改文本的颜色,请在刚创建的布局中添加android:text_color =“您想要的颜色”值。 (我把它设置为#006699,这是一种深蓝色)。