Android-列表视图项在选中时更改背景(可选中)

Android-列表视图项在选中时更改背景(可选中),android,listview,Android,Listview,如何使ListView项在按下时更改其背景,就像它被选中但没有复选框一样,我知道它有一个checkListener或其他东西,但我不知道如何应用。按下后保持其颜色背景,再次按下时变回第一个背景。1)在模型类中创建布尔字段 2) 定义项的根布局(创建id并在ListView适配器的getView()方法中查找视图)。 3) 如果单击“新建”boolean=true,则为根目录添加OnClickListener。 4) 如果您的模型类项的新布尔值为真,则设置根布局bg\u颜色\u 1,否则设置bg\

如何使
ListView
项在按下时更改其背景,就像它被选中但没有复选框一样,我知道它有一个
checkListener
或其他东西,但我不知道如何应用。按下后保持其颜色背景,再次按下时变回第一个背景。

1)在
模型类中创建
布尔
字段
2) 定义项的根
布局
(创建
id
并在
ListView
适配器的
getView()
方法中查找视图)。
3) 如果单击“新建”
boolean
=true,则为根目录添加
OnClickListener

4) 如果您的
模型类
项的新
布尔值
为真,则设置根
布局
bg\u颜色\u 1,否则设置bg\u颜色\u 2。

1)在
模型类
中创建
布尔值
字段
2) 定义项的根
布局
(创建
id
并在
ListView
适配器的
getView()
方法中查找视图)。
3) 如果单击“新建”
boolean
=true,则为根目录添加
OnClickListener


4) 如果您的
模型类
项的新
布尔值
为真,则设置根
布局
bg\u颜色1,否则设置bg\u颜色2。

您的
列表项.xml

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="?android:attr/activatedBackgroundIndicator"
android:orientation="vertical" >

<TextView
    android:id="@+id/tv_list_item"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:gravity="center_vertical" />
</LinearLayout>
<selector xmlns:android="http://schemas.android.com/apk/res/android"
android:exitFadeDuration="@android:integer/config_mediumAnimTime">

<item android:drawable="@drawable/list_pressed" android:state_pressed="true"/>
<item android:drawable="@drawable/list_selected" android:state_activated="true"/>
<item android:drawable="@drawable/list_default"/>

</selector>
您使用listivew的布局:

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

<ListView
    android:id="@+id/listViewMainFragment"
    android:layout_width="match_parent"
    android:layout_height="wrap_content" 
    android:listSelector="@drawable/listview_selector.xml"
    android:choiceMode="singleChoice">
</ListView>

</LinearLayout>

您的
列表项.xml

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="?android:attr/activatedBackgroundIndicator"
android:orientation="vertical" >

<TextView
    android:id="@+id/tv_list_item"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:gravity="center_vertical" />
</LinearLayout>
<selector xmlns:android="http://schemas.android.com/apk/res/android"
android:exitFadeDuration="@android:integer/config_mediumAnimTime">

<item android:drawable="@drawable/list_pressed" android:state_pressed="true"/>
<item android:drawable="@drawable/list_selected" android:state_activated="true"/>
<item android:drawable="@drawable/list_default"/>

</selector>
您使用listivew的布局:

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

<ListView
    android:id="@+id/listViewMainFragment"
    android:layout_width="match_parent"
    android:layout_height="wrap_content" 
    android:listSelector="@drawable/listview_selector.xml"
    android:choiceMode="singleChoice">
</ListView>

</LinearLayout>

试试这个

listview.setOnItemClickListener(新的AdapterView.OnItemClickListener(){
@凌驾
public void onItemClick(AdapterView父对象、视图、整型位置、长id){
视图.setBackgroundColor(颜色.绿色);
}
});
试试这个

listview.setOnItemClickListener(新的AdapterView.OnItemClickListener(){
@凌驾
public void onItemClick(AdapterView父对象、视图、整型位置、长id){
视图.setBackgroundColor(颜色.绿色);
}
});

项目内的
android:state\u activated
属性是什么?项目内的
android:state\u activated
属性是什么?我列表中的其他项目在我按下它们之前也变为绿色,我列表中的其他项目在我按下它们之前也变为绿色,