【问题标题】:EditText weird behaviour in ListView BaseAdapterListView BaseAdapter 中的 EditText 奇怪行为
【发布时间】:2014-03-21 06:20:00
【问题描述】:

我有一个 ListView,使用 BaseAdapter 填充。 在列表视图项中有一个数字 EditText:

...
            <EditText
                android:id="@+id/edit_quantita"
                android:layout_width="50dp"
                android:layout_height="30dp"
                android:layout_gravity="center"
                android:layout_marginTop="5dp"
                android:background="@drawable/edit_quantita"
                android:gravity="center_vertical|center_horizontal"
                android:inputType="number"
                android:text="1"
                android:textColor="#fff"
                tools:ignore="HardcodedText" >

            </EditText>
...

当我点击这个 EditText 时,数字键盘会立即提示,然后它突然被常规字符键盘覆盖。如果我尝试在这个键盘上写东西,任何地方都不会显示任何文字。 奇怪的是,如果我再次点击 Edittext,它的行为应该会正常,只显示工作中的数字键盘。

我能做什么?

【问题讨论】:

    标签: android android-listview android-edittext baseadapter


    【解决方案1】:

    EditText 的实现在ListView 中使用时存在许多缺陷。尝试将这段代码添加到您的onCreate()

    int apiVersion = android.os.Build.VERSION.SDK_INT;
    if (apiVersion >= android.os.Build.VERSION_CODES.ICE_CREAM_SANDWICH)
                getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_ADJUST_PAN);
    else
                getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_ADJUST_RESIZE);
    

    【讨论】:

      【解决方案2】:

      您可以尝试以下方法:

      • 检查您是否有另一个可能与数字重叠的 EditText。
      • 创建一个只有数字 EditText 的新活动,看看是否会发生同样的情况。
      • 检查活动的代码以查看运行时是否正在修改某些内容。我不认为您可以通过代码更改 EditText 类型,但也许其他东西正在修改它的行为。

      希望它有助于调试问题。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多