0

我的 XML 布局中有两个元素(TextView),当按下 LongClick 时,它将提示用户输入新值,然后当单击 DONE 按钮时,它应该使用 setText() 将新输入的值显示给 tvScoreHome .

当我对提到的元素进行长按时,编辑字段和键盘会按预期显示。但是,它不允许我输入任何内容。当我输入某些内容时,它什么也没有显示(但设备会像按下按钮一样振动),当单击 DONE 按钮时它也会振动,但它不会退出键盘并在 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;
        }
    });
4

1 回答 1

1

在复制数据和隐藏 EditText 之前,您需要让用户有机会输入一些文本。
从您的侦听器中删除这两行:

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

userInput也许您可以在失去焦点时使用 OnFocusChangeListener 来运行这两行。

于 2012-12-27T21:44:30.983 回答