ListView BaseAdapter中EditText的奇怪行为

4

我有一个使用BaseAdapter填充的ListView。 在ListView项中有一个数字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时,数字键盘会立即弹出,然后突然被普通的字符键盘覆盖。如果我尝试在此键盘上输入文字,则无论在哪里都不会显示任何文本。 有趣的是,如果我再次点击Editext,则它会按照应有的方式表现,仅显示工作中的数字键盘。
我该怎么办?
2个回答

5

EditTextListView中使用时有很多缺陷。尝试在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);

0
你可以尝试以下方法:
  • 检查是否有其他EditText与数字EditText重叠。
  • 创建一个只有数字EditText的新活动,看看是否会出现相同的问题。
  • 检查活动的代码,看看是否有任何运行时修改。我不认为你可以通过代码更改EditText类型,但也许有其他东西正在修改它的行为。
希望这能帮助调试问题。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接