Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/227.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/fsharp/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 编辑文本在单击时失去焦点_Android_Android Edittext_Adapter - Fatal编程技术网

Android 编辑文本在单击时失去焦点

Android 编辑文本在单击时失去焦点,android,android-edittext,adapter,Android,Android Edittext,Adapter,我正在写一个活动,列出数据库中的一组项目,并显示一个额外的带有数量的列。我实现了一个ArrayAdapter来显示我的自定义布局。 以下是适配器最重要部分的代码: static class ViewHolder { protected TextView text; protected EditText editText; } @Override public View getView(int position, View convertView, ViewGroup paren

我正在写一个活动,列出数据库中的一组项目,并显示一个额外的带有数量的列。我实现了一个ArrayAdapter来显示我的自定义布局。 以下是适配器最重要部分的代码:

static class ViewHolder {
    protected TextView text;
    protected EditText editText;
}

@Override
public View getView(int position, View convertView, ViewGroup parent) {
    View view = null;
    if (convertView == null) {
        LayoutInflater inflator = context.getLayoutInflater();
        view = inflator.inflate(R.layout.rowquantitylayout, null);
        final ViewHolder viewHolder = new ViewHolder();
        viewHolder.text = (TextView) view.findViewById(R.id.label);
        viewHolder.editText = (EditText) view.findViewById(R.id.editText);
        viewHolder.editText.addTextChangedListener(new TextWatcher() {
            public void afterTextChanged(Editable s) {
                Log.i(TAG, "Editable:" + s.toString());
            }

            public void beforeTextChanged(CharSequence s, int start,
                    int count, int after) {
            }

            public void onTextChanged(CharSequence s, int start,
                    int before, int count) {
            }
        });
        view.setTag(viewHolder);
        viewHolder.editText.setTag(list.get(position));
    } else {
        view = convertView;
        ((ViewHolder) view.getTag()).editText.setTag(list.get(position));
    }
    ViewHolder holder = (ViewHolder) view.getTag();
    holder.text.setText(list.get(position).getDescription());
    holder.editText.setText("" + list.get(position).getQuantity());
    return view;

}
现在,当我尝试聚焦“EditText”时,它在我单击它之后就失去了焦点。它显示了keboard,甚至可以访问Log.i,但不允许我更改值,因为它没有聚焦

感谢您的帮助

试试这个:

<EditText
    android:id="@+id/editText1"
    android:layout_width="0dip"
    android:layout_height="wrap_content"
    android:layout_weight="1"
    android:ems="10"
    android:inputType="textShortMessage" >
    <requestFocus />
</EditText>

我也有同样的问题,我一直在寻找答案。 下面是一个类似问题的答案:

您必须在清单中的活动中添加一行:

    android:windowSoftInputMode="adjustPan"
您的listview也必须有以下行:

    android:descendantFocusability="beforeDescendants"
现在你可能会面临另一个问题,那就是滚动时文本丢失。如果发生这种情况,请参阅本教程:

希望这会有所帮助。
Goui

您是否尝试在edittext android上设置类似的属性:focusableInTouchMode=“true”仍然不工作的可能重复项。我不知道这是否有帮助,因为编辑文本位于相对布局中。Hanks,我会尽快尝试。为什么这么简单和常见的任务会如此复杂?我在stackoverflow上找到了另一个相同的解决方案,但后代的聚焦性是后继的。