【问题标题】:Why cant I write text?为什么我不能写文字?
【发布时间】:2016-05-04 02:25:18
【问题描述】:

过去三个小时我一直在努力让它工作,现在我需要你的帮助。我只是想在用户单击“完成”时从我的 editText 记录文本:

  e.setOnKeyListener(new View.OnKeyListener() {
        public boolean onKey(View v, int keyCode, KeyEvent event) {

            Log.v(TAG, "KEYCODE: " +keyCode);
            Toast.makeText(MainActivity.this, "" +keyCode, Toast.LENGTH_SHORT).show();

            if ((keyCode == EditorInfo.IME_ACTION_DONE) && (event.getAction() == KeyEvent.ACTION_DOWN)) {

                Log.v(TAG, "DONE!");
                Toast.makeText(MainActivity.this, "" +e.getText(), Toast.LENGTH_LONG).show();

                return false;
            }
            return false;
        }
    });

这是 XML:

   <EditText
        android:layout_width="100dp"
        android:layout_height="wrap_content"
        android:id="@+id/editText"
        android:layout_alignBottom="@+id/textView4"
        android:layout_alignParentRight="true"
        android:layout_alignParentEnd="true"
        android:layout_toRightOf="@+id/textView4"
        android:layout_toEndOf="@+id/textView4"
        android:imeOptions="actionDone"
        android:inputType="text"

        />

问题是我的onKey 甚至没有显示任何祝酒词,当他们点击完成时我无法获得用户输入。我尝试在我的 if 语句中更改这么多东西,但现在连 onKey 都没有被调用。我做错了什么?

感谢您花时间回答我的问题:)

【问题讨论】:

    标签: java android xml string algorithm


    【解决方案1】:

    docs 中回答了您的代码无法正常工作的原因。

    软输入法上的按键不需要触发 这个监听器中的方法,实际上不鼓励这样做。这 默认的 android 键盘不会为任何键触发这些 以 Jelly Bean 或更高版本为目标的应用程序,并且只会交付它 对于针对冰淇淋三明治的应用程序的某些按键或 早一点。

    如果您想在用户点击完成时获取用户输入,您可以尝试类似

    e.setOnEditorActionListener(new TextView.OnEditorActionListener() {
        public boolean onEditorAction(TextView v, int actionId, KeyEvent event) {
            if (actionId == EditorInfo.IME_ACTION_DONE) {
                Toast.makeText(MainActivity.this, e.getText(), Toast.LENGTH_SHORT).show();
                return true;
            }
            return false;
        }
    });
    

    【讨论】:

    • 非常感谢,您解决了我的问题,我被困了几个小时。那么 onKeyListener 应该用来做什么呢?
    • 再次来自文档it should only be used for cases where an application has its own on-screen keypad and also wants to process hard keyboard events to match it。所以我猜当你制作一个自定义键盘时,也许这可以用来匹配键盘事件。
    • 如果我想在他们点击完成后隐藏键盘,我可以返回false,对吧?
    猜你喜欢
    • 2019-08-01
    • 2015-02-23
    • 2012-03-15
    • 1970-01-01
    • 2022-11-14
    • 1970-01-01
    • 2012-02-01
    • 1970-01-01
    相关资源
    最近更新 更多