Edg*_*gar 1 android listview colors onclick
我有一个listview,它有一个适配器,工作正常,但后来我添加了一些代码,因为我希望行是不同的颜色,之后,onclick颜色不会显示.
这是我添加的代码:
if (position % 2 == 0)
vi.findViewById(R.id.parentL).setBackgroundColor(ctx.getResources().getColor(R.color.row1));
else
vi.findViewById(R.id.parentL).setBackgroundColor(ctx.getResources().getColor(R.color.row2));
Run Code Online (Sandbox Code Playgroud)
首先,您需要将ListView设置为透明
在Adapter的onCreate()方法中,设置:
((ListView) findViewById(R.id.main_list)).setBackgroundColor(0);
Run Code Online (Sandbox Code Playgroud)
接着,内部Adapter的getView()包括下面的代码
if (position%2 == 0) {
view.setBackgroundResource(R.drawable.selector);
} else {
view.setBackgroundResource(R.drawable.selector2);
}
Run Code Online (Sandbox Code Playgroud)
其中selector.xml是
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android" >
<item android:state_pressed="false" android:state_focused="false"
android:drawable="@color/blue" />
<item android:state_enabled="false" android:state_focused="true"
android:drawable="@color/translucent_red" />
<item android:state_enabled="true"
android:state_pressed="true" android:drawable="@color/translucent_red" />
<item android:state_enabled="true"
android:state_focused="true" android:drawable="@color/translucent_red" />
<item
android:drawable="@color/android:transparent" />
</selector>
Run Code Online (Sandbox Code Playgroud)
和selector2.xml是
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android" >
<item android:state_pressed="false" android:state_focused="false"
android:drawable="@color/green" />
<item android:state_enabled="false" android:state_focused="true"
android:drawable="@color/opaque_red" />
<item android:state_enabled="true"
android:state_pressed="true" android:drawable="@color/opaque_red" />
<item android:state_enabled="true"
android:state_focused="true" android:drawable="@color/opaque_red" />
<item
android:drawable="@color/android:transparent" />
</selector>
Run Code Online (Sandbox Code Playgroud)
不要忘记包含colors.xml
<?xml version="1.0" encoding="utf-8"?>
<resources>
<color name="opaque_red">#f00</color>
<color name="translucent_red">#80ff0000</color>
<color name="blue">#00f</color>
<color name="green">#0f0</color>
</resources>
Run Code Online (Sandbox Code Playgroud)
这是我为您配置的示例项目的文件.您可能希望在其他任何事情之前执行项目>清理.
在这个应用程序中可以忽略一些文件,因为我修改了一个非常不同的现有样本.
这是我的示例应用程序的样子

| 归档时间: |
|
| 查看次数: |
2769 次 |
| 最近记录: |