我有一个带EditTexts的ListView。当我第一次单击文本框时,它会被选中,键盘弹出然后文本框被取消选中。但是,一旦加载键盘,就会选择文本框。这是我的xml
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical"
>
<ListView
android:id="@android:id/list"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
/>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:orientation="vertical" >
<TextView
android:id="@+id/borrowerName"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@+id/label"
android:textSize="14sp"
>
</TextView>
<TextView
android:id="@+id/loanAmount"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@+id/label"
android:textSize="14sp"
>
</TextView>
<TextView
android:id="@+id/installmentNumber"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@+id/label"
android:textSize="12sp"
>
</TextView>
<TextView
android:id="@+id/estimatedTotal"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@+id/label"
android:textSize="12sp"
>
</TextView>
</LinearLayout>
<EditText
android:id="@+id/repaymentAmount"
android:layout_width="75sp"
android:layout_height="wrap_content"
android:layout_alignParentRight="true"
android:inputType="numberDecimal"
android:textSize="12sp"
>
</EditText>
</RelativeLayout>
我尝试了以下事项:
将以下标签添加到RelativeLayout和EditText
android:focusable="true"
android:focusableInTouchMode="true"
在listAdapter设置后在我的代码中添加:getListView.requestFocus()
答案 0 :(得分:1)
您需要使用adjustpan。 请查看以下链接以获取更多信息
http://comments.gmane.org/gmane.comp.handhelds.android.devel/134260
答案 1 :(得分:0)
在您的布局中,您可以使用requestfocus标记:
在你的例子中:
<!-- [...] -->
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:orientation="vertical" >
<!-- [...] -->
<EditText
android:id="@+id/repaymentAmount"
android:layout_width="75sp"
android:layout_height="wrap_content"
android:layout_alignParentRight="true"
android:inputType="numberDecimal"
android:textSize="12sp">
<requestfocus/>
</EditText>
<!-- [...] -->
</LinearLayout>
同样在您的代码中,您应该在editText对象而不是列表视图上调用requestFocust()。