当前位置: 首页 > 知识库问答 >
问题:

列表视图项目选择Android

越学博
2023-03-14

我有一个列表视图,当我的活动开始时,我想要第一个项目将有背景,其他项目没有任何背景。之后,如果用户选择任何其他项目,则该特定项目的背景现在将为蓝色,其余部分将没有任何背景。请帮帮我。

My layout_effect.xml

<selector xmlns:android="http://schemas.android.com/apk/res/android">

    <item android:state_focused="true">
    <shape>
        <solid android:color="#ffffff" />
    </shape>
</item>
    <item>
    <shape>
        <solid android:color="#00a7eb" />
    </shape>
</item>
</selector>

设置默认背景的GetView代码

public View getView(int position, View convertView, ViewGroup parent) { 
        if(position == 0){

            vi.setBackgroundResource(R.drawable.selection_effect);
            vi.setSelected(true);

            }
        }

listview的任何我的onclickListner

onewayListView .setOnItemClickListener(new OnItemClickListener() {


        @Override
        public void onItemClick(AdapterView<?> arg0, View arg1, int arg2,
                long arg3) {
            // TODO Auto-generated method stub


        Toast.makeText(getBaseContext(), "Clicked", 1000).show();
        }
    });

我的列表视图xml

<ListView
            android:id="@+id/lvDepartures"
            android:layout_weight="1"
            android:layout_marginLeft="5dp"
            android:choiceMode="singleChoice"
            android:layout_height="wrap_content"
            android:listSelector="@drawable/selection_effect"
            android:layout_width="wrap_content"/>

请帮帮我,我怎么才能解决这个问题,我从昨天开始就被困在里面了。

共有3个答案

西门嘉石
2023-03-14

在列表项上,单击将所选位置传递到适配器,再次设置适配器,并在适配器中检查所选位置,然后设置背景,否则不设置背景。

东郭自强
2023-03-14

listview创建选择器

<selector xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:drawable="@drawable/button_pressed_yellow"
          android:state_pressed="true" />
    <item android:drawable="@drawable/button_focused_orange"
          android:state_focused="true" />
    <item android:drawable="@drawable/button_normal_green" />
</selector>

< code > setOnItemClickListener 编写以下函数

listView.setOnItemClickListener(new OnItemClickListener() {
            public void onItemClick(AdapterView<?> parent, View view,
                    int position, long id) {

                Toast.makeText(getApplicationContext(),
                ""+position, Toast.LENGTH_SHORT).show();
            }
        });
许焕
2023-03-14

为此,您可以创建一个选择器并将其应用于row.xml的父视图

> < li>

在strings.xml中定义颜色

<代码>

创建选择器

<item android:drawable="@color/blue" android:state_activated="true" />
<item android:drawable="@color/blue" android:state_focused="true" />

现在将其应用为android:背景=“@drawable/row_selector”作为行的父视图。

>

  • 在 Java 代码中将列表视图设置为CHOICE_MODE_SINGLE

    listview.setChoiceMode(ListView.CHOICE_MODE_SINGLE);

    最后,设置ListView的适配器。

    listview.setAdapter(适配器);

    对于列表视图使用中的默认项的选择,

    < code > listview . setitemchecked(position,true);

    我为同一个创建了一个演示示例,您可以从我的github下载它

  •  类似资料:
    • 问题内容: 我试图以与从中选择类似的方式选择的列名称。 我似乎找不到解决办法。有没有其他人以前做过此事,或者知道是否有可能? 问题答案: information_schema.columns.Table_name(至少在Sql Server 2000下)包含视图,因此只需使用

    • 我正在使用接缝2.2.2。JBoss AS 5上的最终版本。我正在开发一个多页向导。在我的第一页上,用户将能够在文本区域上输入由新行分隔的多个业务名称。 提交页面后,系统解析输入值并将其拆分为字符串列表 然后要求用户从有效企业名称列表中选择进行注册 selectedbusinessName为String类型,而businessNameChoices为List类型 在提交页面时,作为企业名称提交的内

    • 我有一个Windows Phone应用程序,其中一个ListPicker绑定到一个ObservableCollection和一个选定的项目: 在ViewModel中: 当我试图从按钮处理程序的列表中删除所选项目时,我得到一个InvalidOperationException(SelectedItem必须始终设置为有效值): 我希望将SseltedCon条件设置为null(这实际上是列表中的第一个项

    • 我做了一个列表视图。计划是,当你选择一个项目时,它应该显示为选中状态(背景颜色改变),当你选择另一个项目时,之前选择的项目再次正常。有办法做到这一点吗?我一直在尝试很多事情,但都没用。。。 这是我目前的代码。。。 标记其中一个是有效的,但删除选择是我的问题。有什么建议吗? 编辑:我要找的是,在我选择另一个项目之前,它一直处于选中状态

    • 我需要在单击ListView时更改选定项目的颜色,以便用户知道单击了什么。 到目前为止,我已经为此编写了以下代码: 它所做的是更改所选项目的背景色,并保持原样,直到我单击另一个项目,使其仅更改当前项目所选的背景色 我还想知道是否有一种XML方法可以做到这一点。到目前为止,我发现: 但我还没有得到之前代码的功能。不过,它所做的是更改背景颜色,并在单击时更改背景颜色,但不使用特定的颜色保留选定的项目

    • 我的ListView自定义适配器(及其新实现的viewHolder)有一些问题。我有一个列表视图,每个项目都有一个复选框(这里没有新内容)。问题是,如果我的列表中有超过9个项目,当我选中第一个复选框时,第十个将自动选中(第二个与第十一个相同),就像两个项目都有一个监听器一样(我认为在某种程度上是这样)。 我在这里读到了listView、视图回收和ViewHolder解决它的方法的位置问题:如何使我