EditText不希望我输入数字,跳回到上一个文本字段

时间:2018-01-18 14:03:25

标签: android

列表行有2个编辑文本,一个用于名称,另一个用于值,问题是当光标设置为值字段时,它立即跳转到第一个字段,没有机会在那里键入任何内容。这是xml:

<?xml version="1.0" encoding="utf-8"?>
<android.support.constraint.ConstraintLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent">


    <EditText
        android:id="@+id/nameID"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginStart="8dp"
        android:ems="10"
        android:hint="Name"
        android:inputType="textPersonName"
        app:layout_constraintStart_toStartOf="parent"
        tools:layout_editor_absoluteY="176dp"
        android:imeOptions="actionNext"/>

    <EditText
        android:id="@+id/valueID"
        android:layout_width="74dp"
        android:layout_height="44dp"
        android:layout_marginStart="8dp"
        android:ems="10"
        android:hint="Value"
        android:inputType="number|numberDecimal"
        app:layout_constraintStart_toEndOf="@+id/nameID"
        tools:layout_editor_absoluteY="176dp" />

    <ImageButton
        android:id="@+id/xButtonID"
        android:layout_width="42dp"
        android:layout_height="40dp"
        android:layout_marginEnd="8dp"
        android:layout_marginStart="8dp"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintStart_toEndOf="@+id/valueID"
        app:srcCompat="@android:drawable/ic_delete"
        tools:layout_editor_absoluteY="176dp"
        />
</android.support.constraint.ConstraintLayout>

enter image description here

这是getView的Java代码,实际上没什么有趣的,没有监听器,没有动作..:

@NonNull
    @Override
    public View getView(final int position, @Nullable View convertView, @NonNull ViewGroup parent) {

        SheetItem sheetItem = new SheetItem();
        ViewHolder holder;
        if (convertView == null) {
            LayoutInflater inflater = LayoutInflater.from(getContext());
            convertView = inflater.inflate(listItemLayout,parent, false);

            holder = new ViewHolder();
            holder.name = (EditText) convertView.findViewById(R.id.nameID);
            holder.value = (EditText) convertView.findViewById(R.id.valueID);
            convertView.setTag(holder);
        } else {
            holder = (ViewHolder) convertView.getTag();
        }
        holder.item = getItem(position);



        ImageButton deleteButton = convertView.findViewById(R.id.xButtonID);
        deleteButton.setTag(position);
        deleteButton.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                int pos = (int) v.getTag();
                itemList.remove(pos);
                notifyDataSetChanged();
                notifyDataSetInvalidated();
            }
        });


        return convertView;
    }

2 个答案:

答案 0 :(得分:1)

嘿,只需在Manifest文件中的Activity元素中添加一个标记

工作正常

android:windowSoftInputMode="adjustPan"

感谢分享项目。

答案 1 :(得分:0)

我遇到了类似的问题,长按特定的编辑文本并查找选项。它提供了一些像输入类型的东西,然后选择合适的一个。我想应该这样做。