如何在第一次单击时选中editText?

时间:2012-07-05 11:59:41

标签: android android-listview android-edittext

我有一个带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()

2 个答案:

答案 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()。