基本的に、私は仮想キーボードを表示し、可視EditText
またはを使用せずに入力を収集しようとしていますTextView
。私toggleSoftInput
はこれを行うために使用できることを理解していますが、入力を操作するshowSoftInput
ためにを使用したいので、使用する必要があります。TextWatcher
また、使用しているエンジンはc ++であるため、javaのみのコードをできるだけ少なくしようとしているため、.xmlファイルは避けています。だからここに行く...
public class GameActivity extends Activity {
protected GameView view = null;
protected EditText editText;
protected void onCreate(Bundle bundle)
{
super.onCreate(bundle);
view = new GameView(this);
setContentView(view);
editText = new EditText(this);
editText.setCursorVisible(false);
editText.setFocusable(true);
editText.setFocusableInTouchMode(true);
}
public boolean showKeyboard()
{
JniApp.log("showKeyboard() in Java invoked!!!");
editText.requestFocus();
editText.requestFocusFromTouch();
InputMethodManager imm = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE);
imm.showSoftInput(editText, InputMethodManager.SHOW_FORCED);
}
showKeyboard()
私のc++によるJavaへの呼び出しはどこにありますか。editText
私はそれが焦点を当てていることを確認しました、そしてそれはそうです。ただし、showSoftInput
falseを返します。どんな助けでも大歓迎です。
更新:いくつかのデバッグの後、trueを返すように見えrequestFocus
ますが、アクティビティはまだview
現在のフォーカスであると言います。