gpt4 book ai didi

android - ListView 上的焦点问题

转载 作者:行者123 更新时间:2023-11-29 18:10:31 24 4
gpt4 key购买 nike

我有一个搜索Activity,其布局文件如下。

<?xml version="1.0" encoding="utf-8"?>
<LinearLayoutxmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical" >

<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="@color/white2" >

<EditText
android:id="@+id/et_search"
android:layout_width="280dp"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:layout_marginBottom="5dp"
android:layout_marginLeft="20dp"
android:layout_marginRight="20dp"
android:layout_marginTop="5dp"
android:drawableRight="@drawable/search_20"
android:ems="10"
android:hint="Search by name" />
</LinearLayout>

<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="@color/grey05"
android:orientation="horizontal" >

<TextView
android:id="@+id/tv_name"
android:layout_width="1dip"
android:layout_height="wrap_content"
android:layout_marginLeft="20dp"
android:layout_weight="0.25"
android:text="Name"
android:textAppearance="?android:attr/textAppearanceMedium" >
</TextView>

<TextView
android:id="@+id/tv_sno"
android:layout_width="1dip"
android:layout_height="wrap_content"
android:layout_weight="0.25"
android:text="Serial No."
android:textAppearance="?android:attr/textAppearanceMedium" >
</TextView>

<TextView
android:id="@+id/tv_type"
android:layout_width="1dip"
android:layout_height="wrap_content"
android:layout_marginLeft="20dp"
android:layout_weight="0.25"
android:text="Type"
android:textAppearance="?android:attr/textAppearanceMedium" >
</TextView>
</LinearLayout>

<ListView
android:id="@+id/listView1"
android:layout_width="match_parent"
android:layout_height="0dip"
android:layout_weight="1"
android:transcriptMode="normal" >
</ListView>

<LinearLayout
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_marginLeft="2dp"
android:layout_marginRight="2dp"
android:orientation="horizontal" >

<Button
android:id="@+id/btn_chkin"
android:layout_width="0dip"
android:layout_height="50dip"
android:layout_marginBottom="5dip"
android:layout_marginRight="2dip"
android:layout_marginTop="20dip"
android:layout_weight="1"
android:background="@drawable/custombutton"
android:text="Submit" />

<Button
android:id="@+id/btn_chkout"
android:layout_width="0dip"
android:layout_height="50dip"
android:layout_marginBottom="5dip"
android:layout_marginLeft="2dip"
android:layout_marginTop="20dip"
android:layout_weight="1"
android:background="@drawable/custombutton"
android:text="Cancel" />
</LinearLayout>

</LinearLayout>

顶部的搜索EditText,中间的 ListView 和屏幕底部的两个按钮。

我无法在 ListView 中聚焦一个项目。在 ListView 适配器的布局文件中,我设置了 android:clickable="false"
android:focusable="false"
仍然当我选择一个项目时,所选项目不会突出显示..我还尝试将以下代码放入 onItemClick

1

  // @Override
public void onItemClick(AdapterView<?> arg0, View arg1, int position,
long id) {

if (lview3 != null) {
lview3.getChildAt(prevPos).setBackgroundColor(Color.BLACK);
lview3.getChildAt(position).setBackgroundColor(Color.BLUE);
}
prevPos = position;
}

2

    // @Override
public void onItemClick(AdapterView<?> arg0, View arg1, int position,
long id) {
lview3.setSelection(position);
}

#1 在模拟器上运行良好,但在我的三星 Galaxy Y 上,它显示 *“应用程序意外停止。请重试”*

对于#2,只要我触摸屏幕上的项目,该项目就会突出显示,一旦我移开手指,突出显示的颜色就会消失。

我的listview_row.xml

    <?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/linLayout_search"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="horizontal" >

<TextView
android:id="@+id/tv_name"
android:layout_width="1dip"
android:layout_height="wrap_content"
android:layout_weight="0.25"
android:text="Medium Text"
android:textSize="15sp" />

<TextView
android:id="@+id/tv_sno"
android:layout_width="1dip"
android:layout_height="wrap_content"
android:layout_weight="0.25"
android:text="Medium Text"
android:textSize="15sp" />

<TextView
android:id="@+id/tv_type"
android:layout_width="1dip"
android:layout_height="wrap_content"
android:layout_weight="0.30"
android:text="Medium Text"
android:textSize="15sp" />

</LinearLayout>

最佳答案

您在 ListView 中有选择模式。这是在 ListView 中进行持久选择的标准代码

// inside onCreate method
getListView().setChoiceMode(ListView.CHOICE_MODE_SINGLE);

@Override
protected void onListItemClick(ListView l, View v, int position, long id) {
// Make the newly clicked item the currently selected one.
getListView().setItemChecked(position, true);
}

在此之前,您需要使用选择器设置 ListView 项的布局背景

android:background="@drawable/activated_background"

activated_background.xml

<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android" android:exitFadeDuration="400">

<item android:drawable="#ff0099cc" android:state_selected="true"/>
<item android:drawable="#ff0099cc" android:state_checked="true"/>
<item android:drawable="#ff0099cc" android:state_activated="true"/>
<item android:drawable="@android:color/transparent"/>

</selector>

关于android - ListView 上的焦点问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10990881/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com