【发布时间】:2025-12-27 09:40:12
【问题描述】:
我目前在 ListView 中遇到一堆 EditText 的问题
每个 ListView 项的定义如下:
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent">
<TextView
android:id="@+id/itemLabel"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentLeft="true"
android:layout_marginLeft="20dp"
android:layout_marginTop="5dp"
android:layout_marginBottom="5dp"
android:gravity="left"
android:maxLines="1"
android:text="Label"
android:textSize="17sp"
android:textStyle="bold" />
<EditText
android:id="@+id/valueEditText"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_alignParentLeft="true"
android:layout_gravity="center_vertical"
android:layout_marginLeft="5dp"
android:layout_marginTop="5dp"
android:layout_marginBottom="5dp"
android:layout_below="@id/itemMainLabel"
android:gravity="left"
android:textSize="14sp"
android:inputType="textNoSuggestions"/>
</RelativeLayout>
现在,无论我在哪里触摸列表项,该字段的 EditText 都需要获得焦点。
为此,我坚持以下ItemClicked 事件处理程序可以工作:
private void ListView_ItemClick(object sender, AdapterView.ItemClickEventArgs e)
{
TextView valueField = e.View.FindViewById<EditText>(Resource.Id.valueEditText);
if (valueField != null)
{
valueField.RequestFocus();
}
}
但是,当我单击 EditText 时,它能够获得焦点(因为这是默认行为),但 ItemClick 事件处理程序不会在我单击列表项的任何位置触发。
事件处理程序未触发的原因可能是什么?有没有办法使这项工作正常工作,以便在单击项目的一部分时 EditText 将获得焦点?
【问题讨论】:
标签: android listview focus android-edittext xamarin.android