添加一个新的 CheckBox 和一个 editText 视图,当用户在 android 的键盘上点击 Done 时?

Posted

技术标签:

【中文标题】添加一个新的 CheckBox 和一个 editText 视图,当用户在 android 的键盘上点击 Done 时?【英文标题】:Adding a new CheckBox and a editText views, when the user taps the Done on the keypad in android? 【发布时间】:2021-11-13 08:56:23 【问题描述】:

我是安卓开发新手, 我想要实现的是,

用户通过屏幕键盘(软输入法)点击完成按钮时,现有的默认editText应该变成一个checkBox并再次创建一个editText以便用户可以输入再次获取一些数据。 这些我可以通过创建一个按钮并按下它来做到这一点,但我不想要一个按钮,我想要屏幕上的键盘交互,例如完成按钮

首先,我用 onKeyListener 进行了尝试,但它在软键盘(手机)上不起作用,而是在笔记本电脑键盘等硬件键盘上起作用。

然后我也可以通过屏幕键盘使用 onEditerActionListener() 执行上述功能,但只有一次我可以执行此操作,然后才能执行此操作 strong>,DONE 按钮从屏幕键盘上消失,ENTER 按钮取代 DONE 按钮

当我第一次尝试在 editText 中输入一些数据时,DONE 按钮可用,并且在 ENTER BUTTON 替换它之后。

1) 有什么方法可以阻止 ENTER 按钮替换 on_Screen 键盘上的 DONE 按钮? 2) 或者有没有办法也给回车键提供功能?

XML 代码,

    <EditText
        android:id="@+id/defaultEditText"
        android:layout_
        android:layout_
        android:layout_marginStart="32dp"
        android:layout_marginTop="32dp"
        android:layout_marginEnd="32dp"
        android:inputType="text"
        android:textSize="20sp"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintTop_toTopOf="parent"
        />

安卓代码,

    this.constraintLayout = findViewById(R.id.constraintLayout);
    this.defaultEditText = findViewById(R.id.defaultEditText);

    defaultEditText.setOnEditorActionListener( new TextView.OnEditorActionListener() 
    @Override
    public boolean onEditorAction(TextView v, int actionId, KeyEvent event) 

        if (actionId == EditorInfo.IME_ACTION_DONE) 

           
            //CREATING A CHECKBOX
            //CREATIN A EDITTEXT
            return true;
        
        return false;
    
);

输出,

【问题讨论】:

【参考方案1】:

您可以使用maxLines=1imeOptions="actionDone" 表示您不想想要enter 换行而您是done。这将始终提供您预期的输出。

所以你的EdiText 看起来像这样:

<EditText
        android:id="@+id/defaultEditText"
        android:layout_
        android:layout_
        android:layout_marginStart="32dp"
        android:layout_marginTop="32dp"
        android:layout_marginEnd="32dp"
        android:imeOptions="actionDone"
        android:inputType="text"
        android:maxLines="1"
        android:textSize="20sp"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintTop_toTopOf="parent" />

【讨论】:

但是下一次,它没有提供点击完成的选项。 @mockingbird 我尝试在多个设备上对此进行测试,并且成功了。那么,您能否为您所说的“下一次”提供一些代码。你是如何实现的?

以上是关于添加一个新的 CheckBox 和一个 editText 视图,当用户在 android 的键盘上点击 Done 时?的主要内容,如果未能解决你的问题,请参考以下文章

如何将 TextField 和 CheckBox 添加到同一个 AlertView

Layui——checkbox使用

Layui——checkbox使用

Android高级控件——ListView绑定CheckBox实现全选,添加和删除等功能

C# treeview的节点前添加类似于checkbox

vue checkbox多选框按钮添加全选按钮