有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

安卓上不使用XML布局的java用户文本输入

好吧,我放弃 有没有一种方法可以在不使用XML布局和findViewById(R.id.editText1)之类的东西的情况下调用用户文本输入(显示在屏幕键盘上)? 也许是某种独白?或者像这样的


共 (1) 个答案

  1. # 1 楼答案

    我找到了一个方法。 首先,我使用了SurfaceView(因为这将是一个游戏项目),我将其设置为FocusableInTouchMode(真); 然后我将KeyListener设置到我需要的位置:

    mContext.getGameView().setOnKeyListener(new View.OnKeyListener() {
                public boolean onKey(View v, int keyCode, KeyEvent event) {
                    char pressedKey = (char) event.getUnicodeChar();
                    if(event.getAction() == KeyEvent.ACTION_DOWN){
                    if(event.getUnicodeChar() == 0){
                        setName.setTitle(removeLastChar(setName.getTitle()));
                    } else
                    setName.setTitle(setName.getTitle() + (char) event.getUnicodeChar());}
                    return false;
                }
            });
    

    设定名称。setTitle只是一个包含文本的框(矩形); 然后我创建了一个InputMethodManager:

    private InputMethodManager imm;
    imm = (InputMethodManager) mContext.getSystemService(Context.INPUT_METHOD_SERVICE);
    

    当我需要软键盘时,我称之为:

    imm.showSoftInput(mContext.getGameView(), InputMethodManager.SHOW_FORCED);
    

    如果要删除它,请使用:

    imm.hideSoftInputFromWindow((mContext.getGameView().getWindowToken()), 0);
    

    但在我做了这些东西之后,我发现了一个令人不快的问题: 它不会捕捉西里尔语中的事件。。。知道怎么弄吗?谢谢