Android:从java代码在多文本框中定位光标

Android:从java代码在多文本框中定位光标,java,android,Java,Android,与问题相关的图像: 情境:有两个文本框。有一个“立即发言”按钮。每当我按下“立即发言”按钮时,我希望我的文本会被写入文本框中,光标会在其中闪烁 对于一个文本框,我很容易做到这一点,因为我不必找到光标闪烁: if(editText.length()==0) { editText.setText(result.get(0)); } 但是对于两个文本框,我被卡住了!以下是仅用于一个文本框的代码 public void onActivityResult(int requ

与问题相关的图像:

情境:有两个文本框。有一个“立即发言”按钮。每当我按下“立即发言”按钮时,我希望我的文本会被写入文本框中,光标会在其中闪烁

对于一个文本框,我很容易做到这一点,因为我不必找到光标闪烁:

if(editText.length()==0)
    {
        editText.setText(result.get(0));
    }
但是对于两个文本框,我被卡住了!以下是仅用于一个文本框的代码

public void onActivityResult(int request_code, int result_code, Intent intent) {
        super.onActivityResult(request_code, result_code, intent);
        switch (request_code) {
            case 100:
                if (result_code == RESULT_OK && intent != null) {
                    ArrayList<String> result = intent.getStringArrayListExtra
                       (RecognizerIntent.EXTRA_RESULTS);
                       //todo:get location of cursor


                    if (editText.length() == 0) {
                        editText.setText(result.get(0));
                    } else {
                                editText.setText(concatenateText
                                    (editText.getText().toString(),
                                        result.get(0)));
                    }
                }
                break;
        }
    }
activityresult上的公共无效(int请求代码、int结果代码、Intent-Intent){
super.onActivityResult(请求代码、结果代码、意图);
开关(请求代码){
案例100:
if(result\u code==result\u OK&&intent!=null){
ArrayList结果=intent.getStringArrayListExtra
(识别者意图。额外结果);
//todo:获取光标的位置
如果(editText.length()==0){
setText(result.get(0));
}否则{
editText.setText(连接文本
(editText.getText().toString(),
结果:得到(0));
}
}
打破
}
}

若光标位于文本框上方,则文本框中的setText向上,否则文本框中的setText向下。谢谢你的帮助

您可能需要做的是声明一个您喜欢的任何数据类型的类全局变量,以便区分哪个文本框最后有焦点(请记住,您的按钮选择将带走焦点)。在focusLost()事件中,为每个文本框设置一个全局变量值,以便知道哪个文本框具有最后一个焦点。现在,在按钮的actionPerformed事件(或您正在使用的任何事件)中,您可以通过读取类全局变量中包含的内容轻松确定哪个文本框最后具有焦点。

我添加了后续代码行,然后它按希望工作:if(editTextTopic.hasFocus()){if(editTextTopic.length()==0){editTextTopic.setText(result.get(0));}其他{editTextTopic.setText(concatenateText(editTextTopic.getText().toString(),result.get(0));}这很有帮助。Thanx.)