我正在尝试在Android中自定义我的列表视图
我想要实现的是我想在每个listview项目的左侧添加这些颜色,当然我想为每个项目使用不同的颜色。我怎样才能做到这一点?
这是我的listview所在的代码:
<RelativeLayout
android:id="@+id/hidden_panel"
android:layout_width="match_parent"
android:layout_marginTop="56dp"
android:layout_height="match_parent"
android:background="@android:color/white"
android:visibility="gone" >
<ListView
android:id="@+id/listView1"
android:layout_width="wrap_content"
android:layout_height="500dp" >
</ListView>
<Button
android:id="@+id/button7"
android:layout_width="300dp"
android:layout_height="wrap_content"
android:textColor="#fff"
android:textSize="18sp"
android:layout_marginTop="5dp"
android:text="Compute admission chance"
android:textAllCaps="false"
android:background="@drawable/roundshapebtn"
android:layout_below="@id/listView1"
android:layout_centerInParent="true" />
</RelativeLayout>
修改 这就是我为listview项目所做的:
ListView lv = (ListView) findViewById(R.id.listView1);
ArrayAdapter<String> adapter = new ArrayAdapter<String>(getApplicationContext(),R.layout.spinner_layout,listRecNames);
lv.setAdapter(adapter);
布局:
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="95dp"
android:divider="?android:dividerVertical"
android:showDividers="middle" >
<!-- You can use any view here. Set background "rectangle.xml" drawable to this view.-->
<View
android:layout_width="20dip"
android:layout_height="20dip"
android:background="@drawable/rectangle"
android:layout_alignParentLeft="true"
android:layout_alignParentTop="true"
/>
<TextView
android:id="@+id/custom_spinner"
android:textSize="16sp"
android:padding="10dp"
android:textColor="#000"
android:layout_width="match_parent"
android:layout_height="wrap_content" />
</RelativeLayout>
但是我收到了这个错误:
ArrayAdapter要求资源ID为TextView
答案 0 :(得分:0)
您需要使用ArrayAdapter
的自定义实施方案,在其中实施getView()
以对您的View
进行充气,并完全按照您的意愿行事。
您使用的是一个通用适配器,适用于只有一个文本显示在TextView
s列表中的列表项。
有关详情,请参阅以下教程:Custom ArrayAdapters
答案 1 :(得分:0)
数组适配器需要Textview的ID才能将值绑定到列表视图中。
ListView lv = (ListView) findViewById(R.id.listView1);
ArrayAdapter<String> adapter = new ArrayAdapter<String>(getApplicationContext(),R.layout.spinner_layout,R.id.custom_spinner,listRecNames);
lv.setAdapter(adapter);