【发布时间】: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_width="0dp"
android:layout_height="wrap_content"
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;
}
});
输出,
【问题讨论】:
标签: android dynamic android-edittext android-checkbox on-screen-keyboard