EditText.getText()在Android中无法正常运行

时间:2014-06-10 05:44:11

标签: android geolocation android-edittext

我有以下代码,但我无法将编辑文本框(userInput_latuserInput_lon)中输入的值检索到字符串latitude和{{1}使用这个:

longitude

它什么都不打印。你能建议一个补救措施吗?

latitude = userInput_lat.getText().toString();
longitude = userInput_lon.getText().toString();
result.setText(latitude);

1 个答案:

答案 0 :(得分:0)

发生这种情况是因为在创建这些字段时会调用读取EditText值的代码,而不会在用户单击弹出窗口中的“接受”按钮时调用。

从逻辑上讲,目前的流程是:

  1. 充气弹出布局
  2. 获取EditText [此时新分支]
  3. 阅读文字
  4. 显示弹出窗口
  5. 用户点击“SET”
  6. 结果设置为纬度值
  7. 问题是#3发生在#5之前。将该代码移动到您调用result.setText(latitude)的相同位置,您应该没问题。像这样:

    .setPositiveButton("SET", new DialogInterface.OnClickListener() {
    
        @Override
        public void onClick(DialogInterface dialog, int id) {
            // get user input and set it to result edit text
            latitude = userInput_lat.getText().toString();
            result.setText(latitude);
        }
    
    }