ListView BaseAdapter 中的 EditText 奇怪行为
Posted
技术标签:
【中文标题】ListView BaseAdapter 中的 EditText 奇怪行为【英文标题】:EditText weird behaviour in ListView BaseAdapter 【发布时间】:2014-03-21 06:20:00 【问题描述】:我有一个 ListView,使用 BaseAdapter
填充。
在列表视图项中有一个数字 EditText:
...
<EditText
android:id="@+id/edit_quantita"
android:layout_
android:layout_
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,它的行为应该会正常,只显示工作中的数字键盘。
我能做什么?
【问题讨论】:
【参考方案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 类型,但也许其他东西正在修改它的行为。希望它有助于调试问题。
【讨论】:
以上是关于ListView BaseAdapter 中的 EditText 奇怪行为的主要内容,如果未能解决你的问题,请参考以下文章
未调用 DrawerLayout 中的自定义 BaseAdapter ListView onItemClickListener
Android ListView重写BaseAdapter如何改变指定item中的TextView的颜色?
使用 BaseAdapter 在 ListView 中显示 ArrayList