我想在整个布局中打开数字键盘而不需要edittext
。
到目前为止,我能够显示键盘。但我无法将类型更改为数字键盘。
这是现在正在使用的代码,但我想将键盘切换到数字小键盘。
requestFocus();
handler.postDelayed(new Runnable() {
@Override
public void run() {
inputMethodManager.showSoftInput(context, InputMethodManager.SHOW_IMPLICIT);
}
}, 300);
这是一个视图,我请求焦点然后点击它我想要显示数字小键盘。
答案 0 :(得分:0)
将editText的backGround设置为透明。
<EditText
android:id="@+id/editText"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:inputType="textMultiLine"
android:layout_margin="10dp"
android:background="@color/transparent"/>
以编程方式设置输入类型。
editText.setRawInputType(2);
答案 1 :(得分:0)
与Tushar的答案非常相似,我建议执行以下操作。
在布局中添加一个很小的EditText,使其不可见。 请注意,我将EditText放置在ConstraintLayout中。
<EditText
android:id="@+id/myEditText"
android:layout_width="0.1dp"
android:layout_height="0dp"
android:inputType="number"
android:cursorVisible="false"
android:background="@android:color/transparent"
app:layout_constraintTop_toTopOf="parent"
app:layout_constraintLeft_toLeftOf="parent"/>
我使用Kotlin创建了一个扩展程序来显示键盘。
ViewExtensions.kt
import android.content.Context
import android.view.View
import android.view.inputmethod.InputMethodManager
fun View.showKeyboard() {
val imm = context.getSystemService(Context.INPUT_METHOD_SERVICE) as InputMethodManager
imm.showSoftInput(this, InputMethodManager.SHOW_IMPLICIT)
}
然后,当我想显示键盘时,请执行以下操作。
myEditText.requestFocus()
myEditText.showKeyboard()
如果您使用的是Java,则只需将EditText传递到showSoftInput()
方法中。
InputMethodManager imm = (InputMethodManager)getSystemService(Context.INPUT_METHOD_SERVICE);
imm.showSoftInput(myEditText, InputMethodManager.SHOW_IMPLICIT);
然后,如果您使用的是ButterKnife,则可以使用这样的听众观察文本。
@OnTextChanged(R.id.myEditText)
fun textChanged(text: CharSequence) {
//Add code here
}
如果您不使用ButterKnife,则只需使用
myEditText.addTextChangedListener(...)