gpt4 book ai didi

java - 如何在 EditText 中用完成按钮替换换行按钮

转载 作者:太空宇宙 更新时间:2023-11-04 11:00:57 25 4
gpt4 key购买 nike

我正在尝试制作我的 EditText,而不是使用 newline 按钮来显示 Done 按钮。

关于 SO 的许多问题都是典型问题,但是大多数人建议使用已弃用的 singleLine="true"

这是我显示 EditText 的 XML:

// Other XML
<EditText
android:id="@+id/name"
android:layout_width="250dp"
android:layout_height="wrap_content"
android:digits="abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789-_"
android:hint="@string/character_name_hint"
android:imeOptions="actionDone"
android:maxLines="1"
android:inputType="text"
android:textStyle="italic" />
// Rest of the XML...

但是使用 android:imeOptions="actionDone" 不起作用,也不能以编程方式设置 name.setImeOptions(EditorInfo.IME_ACTION_DONE); 我已经在两个不同的模拟器和一个实时设备上尝试过,API 级别范围从 21 到 26,我使用了 maxLinesinputTypeimeOptions 的每一个组合都无济于事。

该按钮不会更改为“完成”。然而使用 android:singleLine="true" 会立即解决这个问题......

现在我不关心点击后需要做什么,我只想将按钮更改为“完成”

最佳答案

ImeOptionsImeActionLabel 设置为 EditText

喜欢:

name.setImeOptions(KeyEvent.ACTION_DOWN);
name.setImeActionLabel("DONE", KeyEvent.KEYCODE_ENTER);

然后为Done按钮的点击事件添加一个setOnKeyListener

name.setOnKeyListener((v, keyCode, event) -> {
if ((event.getAction() == KeyEvent.ACTION_DOWN) && (keyCode == KeyEvent.KEYCODE_ENTER)) {
// your code goes here...
return true;
}

return false;
});

希望这有帮助!

关于java - 如何在 EditText 中用完成按钮替换换行按钮,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46897157/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com