wiz*_*lee 5 keyboard android android-custom-view
我创建了一个自定义视图:
public class MyCustomView extends LinearLayout {...}
Run Code Online (Sandbox Code Playgroud)
当用户触摸它时,我将显示如下键盘:
@Override
public boolean onTouchEvent(MotionEvent event) {
if (event.getAction() == MotionEvent.ACTION_DOWN) {
requestFocus();
showKeyboard(true);
}
return super.onTouchEvent(event);
}
public void showKeyboard(boolean show) {
InputMethodManager imm = (InputMethodManager) getContext().getSystemService(Context.INPUT_METHOD_SERVICE);
if (show) {
imm.showSoftInput(this, InputMethodManager.SHOW_FORCED);
} else {
imm.hideSoftInputFromWindow(getWindowToken(), 0);
}
}
Run Code Online (Sandbox Code Playgroud)
但是,如何显示数字键盘,哪个用户只能输入数字,就像EditText一样?
mEditText.setInputType(InputType.TYPE_CLASS_NUMBER);
mEditText.setImeOptions(EditorInfo.IME_FLAG_NO_EXTRACT_UI);
Run Code Online (Sandbox Code Playgroud)
尝试添加
EditText mEditText = new EditText(mContext);
mEditText.setInputType(InputType.TYPE_CLASS_NUMBER);
Run Code Online (Sandbox Code Playgroud)
并改变
imm.showSoftInput(this, InputMethodManager.SHOW_FORCED);
Run Code Online (Sandbox Code Playgroud)
到
imm.showSoftInput(mEditText, InputMethodManager.SHOW_FORCED);
Run Code Online (Sandbox Code Playgroud)
即重写你的代码为
if (show) {
EditText mEditText = new EditText(mContext);
mEditText.setInputType(InputType.TYPE_CLASS_NUMBER);
imm.showSoftInput(mEditText, InputMethodManager.SHOW_FORCED);
}
Run Code Online (Sandbox Code Playgroud)
替换mContext是您的活动上下文。
| 归档时间: |
|
| 查看次数: |
1630 次 |
| 最近记录: |