java - 简单的编辑文本?

标签 java android arrays xml string

我正在从编辑文本中获取用户信息。我确实有一个监听器在单击提交后获取他们输入的信息,但我还想在单击返回或单击其他地方后获取输入的信息:

enter image description here

例如,如果用户点击了空白处,我想获取他们输入的文本。 如果他们键入“hello”,然后单击返回而不是“enter”,我仍然希望收到文本 hello。但是,如果他们不输入任何内容,我就不会关心他们的输入。我怎样才能做到这一点?

谢谢,

鲁契尔

最佳答案

首先将这些添加为类变量

private String inputText;
private EditText yourEditText;

获取 EditText View 的实例

yourEditText = (EditText)findViewById(R.id.your_editText);

点击按钮时,可以这样获取EditText字段的内容

 Button mButton = (Button)findViewById(R.id.m_button);
    mButton.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {

            inputText = yourEditText.getText().toString();
        }
    });

如果用户按下后退按钮,您可以获得这样的输入

@Override
public void onBackPressed() {

    inputText = yourEditText.getText().toString();
    super.onBackPressed();
}

然后检查是否有任何值分配给您的字符串变量

if(inputText.equals("") || inputText == null){
      // there is no value            
}else{
      // there is value entered.  
}

扩展我的解决方案以点击其他地方

添加类变量

private boolean isEditTextHasFocus;

然后创建一个焦点监听器,它将检查 Edittext 是否具有焦点

 private View.OnFocusChangeListener focusListener = new View.OnFocusChangeListener() {
    public void onFocusChange(View v, boolean hasFocus) {
        if (hasFocus){
            isEditTextHasFocus = true;
        } else {
            isEditTextHasFocus  = false;
        }
    }
}

onCreate(Bundle savedInstanceState) 方法中添加这一行

yourEditText.setOnFocusChangeListener(focusListener);

然后覆盖到 onTouchEvent(MotionEvent event) 监听器并在调用按键 Action 时访问 Edittext 输入

@Override
public boolean onTouchEvent(MotionEvent event) {
    if (event.getAction() == MotionEvent.ACTION_UP) {
        if(!isEditTextHasFocus){
            inputText = yourEditText.getText().toString();
        }
    }
    return true;
}

我希望这能给你一个进一步的想法,找到你独特的解决方案。

关于java - 简单的编辑文本?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35712900/

相关文章:

java - Eclipse插件: Show window with scrollable text

javascript - 遍历二维数组并找到 "enclosed rooms"

android - 如何将 4 张图像加入一个图像按钮 (android)

android - 更改场景中的多个纹理

java - Java中数组会按引用返回吗?

javascript - 计算用于谷歌可视化的 javascript 中的数组值

Java swt 改变键入的字符

java - 使用OpenCv Java对水表进行图像预处理,使用Tesseract进行OCR

java - 在 GUI 中的表中添加一行

安卓 : How to change animation speed dynamically?