当键盘打开时,在我的index.html页面中按下我的数字类型输入字段<input name="age" id="age" type="number">
时,⏎按钮不会执行任何操作。是否可以在按下时关闭/隐藏此⏎按钮?
我尝试了不同的答案,但我无法使其中任何一个有效。请告诉我我做错了什么。
这是我的主要活动。我正在使用AdvancedWebView作为WebView组件。
public class MainActivity extends Activity implements AdvancedWebView.Listener {
private AdvancedWebView mWebView;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
OneSignal.startInit(this)
.setNotificationOpenedHandler(new ExampleNotificationOpenedHandler())
.init();
setContentView(R.layout.activity_main);
mWebView = (AdvancedWebView) findViewById(R.id.webview);
mWebView.setListener(this, this);
mWebView.loadUrl("file:///android_asset/index.html");
mWebView.setOnTouchListener(new View.OnTouchListener() {
@Override
public boolean onTouch(View v, MotionEvent event) {
WebView.HitTestResult hr = ((WebView) v).getHitTestResult();
int type = hr.getType();
if (type == WebView.HitTestResult.EDIT_TEXT_TYPE) {
InputMethodManager imm = (InputMethodManager) getSystemService(INPUT_METHOD_SERVICE);
imm.hideSoftInputFromWindow(getCurrentFocus().getWindowToken(), 0);
return true;
}
return false;
}
});
}
}
这是我的清单xml:
<application
android:allowBackup="true"
android:icon="@drawable/ic_launcher"
android:label="@string/app_name"
android:theme="@style/AppTheme">
<activity
android:name=".MainActivity"
android:label="@string/app_name"
android:launchMode="singleTask">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
</application>
答案 0 :(得分:-1)
在输入一些细节之后按下ENTER按钮时,此代码可能会帮助您隐藏键盘。
textInput = (EditText)findViewById(R.id.textInput);
// kill keyboard when enter is pressed
textInput.setOnKeyListener(new OnKeyListener()
{
/**
* This listens for the user to press the enter button on
* the keyboard and then hides the virtual keyboard
*/
public boolean onKey(View arg0, int arg1, KeyEvent event) {
// If the event is a key-down event on the "enter" button
if ( (event.getAction() == KeyEvent.ACTION_DOWN ) &&
(arg1 == KeyEvent.KEYCODE_ENTER) )
{
InputMethodManager imm = (InputMethodManager)getSystemService(INPUT_METHOD_SERVICE);
imm.hideSoftInputFromWindow(textInput.getWindowToken(), 0);
return true;
}
return false;
}
} );
但是如果你想在编辑文本中使用单行而不是多行,那么只需在布局文件的EditText下添加android:maxLines="1"
即可隐藏键盘。