Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/387.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/184.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 尝试在LongClick上编辑TextView的值--几乎正常_Java_Android - Fatal编程技术网

Java 尝试在LongClick上编辑TextView的值--几乎正常

Java 尝试在LongClick上编辑TextView的值--几乎正常,java,android,Java,Android,我的XML布局中有两个元素(TextView),当按下长单击时,它将提示用户输入新值,然后当单击“完成”按钮时,它将使用setText()向tvScoreHome显示新输入的值 当我长时间单击上面提到的元素时,编辑字段和键盘将按预期显示。但是,它不允许我键入任何内容。当我键入某个内容时,它不会显示任何内容(但设备会像按下按钮一样振动),当单击“完成”按钮时,它也会振动,但不会退出键盘并显示tvScoreHome元素中的任何内容 你知道为什么吗 // set the onLongClick

我的XML布局中有两个元素(TextView),当按下长单击时,它将提示用户输入新值,然后当单击“完成”按钮时,它将使用setText()向tvScoreHome显示新输入的值

当我长时间单击上面提到的元素时,编辑字段和键盘将按预期显示。但是,它不允许我键入任何内容。当我键入某个内容时,它不会显示任何内容(但设备会像按下按钮一样振动),当单击“完成”按钮时,它也会振动,但不会退出键盘并显示tvScoreHome元素中的任何内容

你知道为什么吗

    // set the onLongClickListener for tvScoreHome
    tvScoreHome.setOnLongClickListener(new View.OnLongClickListener() {
        @Override
        public boolean onLongClick(View v) {
            final EditText userInput = (EditText) findViewById(R.id.userInput);

            InputMethodManager imm = (InputMethodManager) context.getSystemService(Service.INPUT_METHOD_SERVICE);

            userInput.setVisibility(View.VISIBLE);
            imm.showSoftInput(userInput, 0);
            tvScoreHome.setText( userInput.getText() );
            userInput.setVisibility(View.INVISIBLE);

            return true;
        }
    });

在复制数据和隐藏编辑文本之前,您需要给用户一个输入一些文本的机会。
从侦听器中删除以下两行:

tvScoreHome.setText( userInput.getText() );
userInput.setVisibility(View.INVISIBLE);

userInput
失去焦点时,您可以使用OnFocusChangeListener运行这两行。

您能告诉我如何“侦听”要按下的完成键吗?我可以找到很多关于硬件键盘的东西,但不能找到软输入。我发现了一件事,但当我尝试创建userInput.onEditorActionListener(新onEditorActionListener(){“onEditorActionListener”在红色下划线下无法工作。我基本上需要截取完成键并在此操作上执行代码。onEditorActionListener是您想要的,但您可以使用