【问题标题】:EditText in ListView is not editableListView 中的 EditText 不可编辑
【发布时间】:2015-01-18 14:11:57
【问题描述】:

我正在尝试使用嵌套在 ListView 中的 EditText 视图构建表单。 ListView 和 EditText 之间有几个级别的 RelativeLayout 和 LinearLayout 对象,但从我读到的内容来看,这应该不是问题。

我已经尝试了所有我能想到的。我在 AndroidManifest 中为我的活动设置了android:windowSoftInputMode="adjustPan",我也为我的 ListView 设置了android:descendantFocusability="beforeDescendants"。我什至为 ListView 和 EditText 之间的所有布局对象设置了它。但是,这些似乎都不起作用。

我遇到的主要问题是没有显示软键盘,即使我双击文本字段以调出编辑选项,我仍然无法在 EditText 区域中输入任何内容。我只是为此使用了错误的对象控件吗?

这是我的 ListView 对象的布局代码。

<ListView
    android:id="@+id/FormlistView"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:descendantFocusability="beforeDescendants"
    style="@style/KelFormListView" />

这是我的 form_list_item.xml 文件的布局代码。这是表单列表中显示的项目。

<RelativeLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="120dp"
    android:descendantFocusability="beforeDescendants">

    <!-- Top Layout -->
    <LinearLayout
        xmlns:android="http://schemas.android.com/apk/res/android"
        android:layout_width="fill_parent"
        android:layout_height="60dp"
        android:weightSum="10"
        android:descendantFocusability="beforeDescendants"
        android:id="@+id/TopLayout">

        <TextView
            android:id="@+id/TitleTextView"
            android:layout_width="0dp"
            android:layout_height="match_parent"
            android:layout_weight="7"
            android:gravity="center_vertical"
            android:text="Headling Rent (pa)"
            android:textSize="16dp"
            style="@style/KelFormListItemLabel" />

        <LinearLayout
            android:layout_width="0dp"
            android:layout_height="match_parent"
            android:layout_weight="3"
            android:weightSum="2"
            android:descendantFocusability="beforeDescendants"
            android:background="@color/formListItemValueBackgroundColor">

            <ImageView
                android:id="@+id/CurrencyIconView"
                android:layout_width="22dp"
                android:layout_height="22dp"
                android:layout_weight="0"
                android:src="@drawable/icon_currency_pound"
                android:layout_gravity="center_vertical"
                android:layout_marginLeft="5dp" />

            <EditText
                android:id="@+id/ValueTextView"
                android:layout_width="0dp"
                android:layout_height="match_parent"
                android:layout_weight="2"
                android:gravity="right|center_vertical"
                android:text="20,000"
                android:textSize="16dp"
                android:inputType="number"
                android:focusableInTouchMode="true"
                android:editable="true"
                style="@style/KelFormListItemValue"/>

        </LinearLayout>

    </LinearLayout>

    <!-- Bottom Layout -->
    <LinearLayout
        xmlns:android="http://schemas.android.com/apk/res/android"
        android:layout_width="fill_parent"
        android:layout_height="60dp"
        android:weightSum="10"
        android:id="@+id/BottomLayout"
        android:descendantFocusability="beforeDescendants"
        android:layout_below="@+id/TopLayout">

        <TextView
            android:id="@+id/BottomTitleTextView"
            android:layout_width="0dp"
            android:layout_height="match_parent"
            android:layout_weight="7"
            android:gravity="center_vertical"
            android:text="Headling Rent (pa)"
            android:textSize="16dp"
            style="@style/KelFormListItemLabel" />

        <LinearLayout
            android:layout_width="0dp"
            android:layout_height="match_parent"
            android:layout_weight="3"
            android:weightSum="2"
            android:descendantFocusability="beforeDescendants"
            android:background="@color/formListItemValueBackgroundColor">

            <ImageView
                android:id="@+id/BottomCurrencyIconView"
                android:layout_width="22dp"
                android:layout_height="22dp"
                android:layout_weight="0"
                android:src="@drawable/icon_currency_pound"
                android:layout_gravity="center_vertical"
                android:layout_marginLeft="5dp" />

            <EditText
                android:id="@+id/BottomValueTextView"
                android:layout_width="0dp"
                android:layout_height="match_parent"
                android:layout_weight="2"
                android:gravity="right|center_vertical"
                android:text="20,000"
                android:textSize="16dp"
                android:inputType="number"
                android:focusableInTouchMode="true"
                android:editable="true"
                style="@style/KelFormListItemValue"/>

        </LinearLayout>

    </LinearLayout>
</RelativeLayout>

【问题讨论】:

    标签: android android-layout android-listview android-edittext


    【解决方案1】:

    好的,解决了我自己的问题。主要问题与我的任何代码无关。问题实际上是它自己的模拟器。在 Android ADV 中创建新的虚拟设备时,有一个名为“启用键盘”的设置,或者类似的东西。此设置允许您将硬件键盘与模拟器一起使用,但它会阻止软键盘出现。那是我的问题。

    在我看来,此设置很容易引起混淆,因为直到您显示它出现的高级设置。在我看来,这只是谷歌某人做出的一个糟糕的决定。 iOS 开发更容易的另一个原因……当然是我认为的。

    【讨论】:

      猜你喜欢
      • 2012-02-19
      • 1970-01-01
      • 1970-01-01
      • 2015-10-25
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多