ListView BaseAdapter中的EditText怪异行为

时间:2014-02-20 10:54:56

标签: android android-listview android-edittext baseadapter

我有一个ListView,使用BaseAdapter填充。 在listview Item中有一个数字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 个答案:

答案 0 :(得分:5)

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);

答案 1 :(得分:0)

您可以尝试以下操作:

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

希望它有助于调试问题。