gpt4 book ai didi

android - 在 Android 中设置 textIsSelectable(true) 后软键盘无法打开

转载 作者:太空宇宙 更新时间:2023-11-03 12:47:29 24 4
gpt4 key购买 nike

为了在不显示软键盘的情况下选择 edittext,我设置了 edittext.textIsSelectable(true) 属性并隐藏了软键盘。

当我再次尝试打开软键盘时,它没有打开。

我尝试在 edittext 中设置 setFocusable(true) 但键盘仍然打不开。如有任何建议,我们将不胜感激。

谢谢

最佳答案

通过为 EditText 使用以下代码,您可以获得 Cut/Copy/Paste 的事件你必须像下面这样创建 editText。你可以在事件触发后隐藏软键盘......

<com.example.textlink.EditTextMonitor
android:id="@+id/editText"
android:layout_width="fill_parent"
android:layout_height="100dp"
android:hint="EditText" />

在你的包中创建一个java文件...

public class EditTextMonitor extends EditText {
private final Context mcontext; // Just the constructors to create a new
// EditText...

public EditTextMonitor(Context context) {
super(context);
this.mcontext = context;
}

public EditTextMonitor(Context context, AttributeSet attrs) {
super(context, attrs);
this.mcontext = context;
}

public EditTextMonitor(Context context, AttributeSet attrs, int defStyle) {
super(context, attrs, defStyle);
this.mcontext = context;
}

@Override
public boolean onTextContextMenuItem(int id) {
// Do your thing:
boolean consumed = super.onTextContextMenuItem(id);
// React:
switch (id) {
case android.R.id.cut:
onTextCut();
break;
case android.R.id.paste:
onTextPaste();
break;
case android.R.id.copy:
onTextCopy();
}
return consumed;
}

/**
* Text was cut from this EditText.
*/
public void onTextCut() {
InputMethodManager imm = (InputMethodManager) getContext()
.getApplicationContext()
.getSystemService(Context.INPUT_METHOD_SERVICE);
imm.toggleSoftInput(InputMethodManager.SHOW_FORCED, 0);
Toast.makeText(mcontext, "Event of Cut!", Toast.LENGTH_SHORT).show();
}

/**
* Text was copied from this EditText.
*/
public void onTextCopy() {
InputMethodManager imm = (InputMethodManager) getContext()
.getApplicationContext()
.getSystemService(Context.INPUT_METHOD_SERVICE);
imm.toggleSoftInput(InputMethodManager.SHOW_FORCED, 0);
Toast.makeText(mcontext, "Event of Copy!", Toast.LENGTH_SHORT).show();
}

/**
* Text was pasted into the EditText.
*/
public void onTextPaste() {
InputMethodManager imm = (InputMethodManager) getContext()
.getApplicationContext()
.getSystemService(Context.INPUT_METHOD_SERVICE);
imm.toggleSoftInput(InputMethodManager.SHOW_FORCED, 0);
Toast.makeText(mcontext, "Event of Paste!", Toast.LENGTH_SHORT).show();
}}

关于android - 在 Android 中设置 textIsSelectable(true) 后软键盘无法打开,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39896751/

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