[英]Android Studio - Always show keyboard?
我正在尝试创建一个简单的文字冒险类游戏,作为一个项目来帮助我学习东西。 为此,我需要键盘始终可见,并专注于屏幕上唯一的Edit Text(userinputEditText)。
用户输入一些内容,按Enter键,然后将文本捕获为字符串,然后将其显示在ScrollView内的Text View(mainTextView)中,以便文本始终显示最新的条目。 按键侦听器用于检测何时按下Enter键,以避免仅向编辑文本添加新行。
当您按Enter键时,尽管键盘已关闭,但您必须再次按Edit Text进行键入。 我知道有一个简单的解决方案可以使键盘永久保持打开状态,但是我什么都做不到。
final EditText userinputEditText = (EditText) findViewById(R.id.user_input_edittext);
final TextView mainTextView = (TextView) findViewById(R.id.mainTextView);
final ScrollView scrollview = (ScrollView) findViewById(R.id.scrollView);
scrollview.fullScroll(ScrollView.FOCUS_DOWN);
/// Update MainText window when Enter is pressed
userinputEditText.setOnKeyListener(new View.OnKeyListener() {
@Override
public boolean onKey(View v, int keyCode, KeyEvent event) {
if (event.getAction() == KeyEvent.ACTION_DOWN) {
switch (keyCode) {
case KeyEvent.KEYCODE_DPAD_CENTER:
case KeyEvent.KEYCODE_ENTER:
String userInputString = userinputEditText.getText().toString();
mainTextView.append(userInputString + "\n");
userinputEditText.setText("");
scrollview.fullScroll(ScrollView.FOCUS_DOWN);
return true;
default:
break;
}
}
return false;
}
});
}
以下是您可以重复使用的示例代码,
在AndroidManifest.xml中使用它。
android:windowSoftInputMode =“ stateAlwaysVisible”
像下面
<activity android:name=".MainActivity"
android:windowSoftInputMode="stateAlwaysVisible">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
在您的布局中,您可以使用
<EditText
android:id="@+id/editText"
android:singleLine="true"
android:imeOptions="actionDone"
...
/>
在您的活动的OnCreate()方法中,您可以实现类似以下的操作...
final EditText editText = ((EditText) findViewById(R.id.editText));
editText.setOnEditorActionListener(new EditText.OnEditorActionListener(){
@Override
public boolean onEditorAction(TextView v, int actionId, KeyEvent event) {
String value = editText.getText().toString();
//TODO .. write your respective logic to add data to your textView
editText.setText(""); // clear the text in your editText
return true;
}
});
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.