ListView中的EditText失去了焦点

时间:2013-06-08 20:50:34

标签: android android-listview android-edittext

我最近遇到了这个问题,我希望与您分享我的解决方案。

问题

  • 您有一个ListView,每行包含一个编辑文本,如下所示:

MainList.xml

<ListView
    android:id="@+id/listViewServ"
    android:layout_width="match_parent"
    android:layout_height="0dp"
    android:layout_weight="1"/>

RowList.xml

<TextView 
        android:id="@+id/textView1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content" />

    <EditText
        android:id="@+id/editText1"
        android:layout_width="100dp"
        android:layout_height="wrap_content"  
        android:inputType="number"/>
  • 您正在使用TABS: tabHost或TabActivity 。 (这一点非常重要)。
  • 当您单击任何列表项EditText时,焦点会立即移出,您无法键入任何内容。然而键盘仍然打开。但是你输入的东西并没有出现,因为焦点丢失了。

现在,我将给你解决方案,发表我自己的问题。

1 个答案:

答案 0 :(得分:31)

我已经看到一些解决方案正在使用:

android:descendantFocusability="beforeDescendants"

在列表定义的布局中。

对我来说这没有必要。问题是使用android修复的:windowSoftInputMode =“adjustPan”:

<activity
        android:name="mainActivity"
        android:windowSoftInputMode="adjustPan"
        android:label="@string/app_name" >
    </activity>
Manifest.xml中的

但是你必须确保这行代码进入你定义TabHost或TabActivity的活动!!!。