我有一个奇怪的问题。我所做的是使用TextViews和EditText字段创建自定义ListView适配器。当我按下按钮时,应用程序会获取EditText字段值并将其保存到设备的SD卡中。
我的应用程序在模拟器上完美运行,但问题是当我在设备上测试时,EditText字段会一直取消选择。换句话说,我会点击EditText字段,键盘和光标会弹出,但光标会在之后立即消失,无法输入任何文字。
我的自定义适配器代码:
@Override
public View getView(int i, View view, ViewGroup viewGroup)
{
if (view == null)
{
LayoutInflater inflater = LayoutInflater.from(viewGroup.getContext());
view = inflater.inflate(R.layout.list_item_task_detail, viewGroup, false);
}
final TaskDetailModel taskDetailModel = listArray.get(i);
TextView textView = (TextView)view.findViewById(R.id.list_item_task_detail_text_view);
textView.setText(taskDetailModel.getTaskName());
EditText editText = (EditText)view.findViewById(R.id.list_item_task_detail_edit_text);
return view;
}
EditText布局条目:
<EditText
android:id="@+id/list_item_task_detail_edit_text"
android:layout_height="wrap_content"
android:layout_width="match_parent"/>
是否有某种editable = true我需要添加到EditText字段?我觉得我在某个地方犯了一个我无法找到的错误。我也不理解为什么应用程序在模拟器上工作而不是在我的真实手机上。
BTW模拟器和我的手机使用相同的SDK版本,API级别19(4.4.x)
答案 0 :(得分:0)
我想我设法解决了自己的问题......
我需要做的就是添加一行
editText.requestFocus()
到我的适配器。
如果由于某些奇怪的原因没有设置requestFocus(),我猜测按钮的点击监听器会覆盖EditText字段的焦点请求。仍然不知道为什么这不是模拟器上的问题