这几天接手做一个远程控制Android application,安卓前台的EditText用来输入ip地址、端口等信息,发现EditText的使用存在着巨坑一个!

  我在网上找了半天,发现仅仅有人提出这个困惑,却没有解决。因此写篇文章来解一下。

  EditText中,可以预先写好内容,用android:Text="..."属性。但问题是,当我更改输入内容时,后台却无法获取!如下:

XML布局:

 <EditText
android:id="@+id/editIP"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="http://192.168.1.1"
/>

后台获取:

 public class mainClass{
public EditText EditIP;
EditIp = (EditText)findViewById(R.id.editIp);
String text = EditIp.getText().toStirng();
//....
}

发现text并没有获取到前台输入的任何信息!

解决:

问题在于:程序执行上述2、3、4行,只是一瞬间的事,你还没输入完,它就过去了!即获取输入内容并不是堵塞的!

解决方法就是,在某个堵塞的行为之前获取,比如你在点击按钮之前获取,这样程序保证获取到的输入是你写在EditText中的!

即:

 public class MyMainFrm extends Activity {

     public EditText CameraIP,ControlIP,Port;
public Button Button_go;
public String videoUrl,controlUrl,port;
//public static String CameraIp;
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState); setContentView(R.layout.mymainfrm); Button_go = (Button) findViewById(R.id.button_go); Button_go.requestFocusFromTouch(); Button_go.setOnClickListener(new Button.OnClickListener()
{
public void onClick(View v) {
// TODO Auto-generated method stub
//在这里获取,点击button_go之前,你肯定输入完成了 CameraIP = (EditText) findViewById(R.id.editIP);
ControlIP = (EditText) findViewById(R.id.ip);
Port = (EditText) findViewById(R.id.port); videoUrl = CameraIP.getText().toString();
controlUrl = ControlIP.getText().toString();
port = Port.getText().toString(); //生成一个Intent对象
Intent intent = new Intent();
//在Intent对象当中添加一个键值对
intent.putExtra("CameraIp", videoUrl);
intent.putExtra("ControlUrl", controlUrl);
intent.putExtra("Port", port); intent.putExtra("Is_Scale", true);
//设置Intent对象要启动的Activity
intent.setClass(MyMainFrm.this, MyVideo.class);
//通过Intent对象启动另外一个Activity
MyMainFrm.this.startActivity(intent);
finish();
System.exit(0);
}
}); }

【Java】Android EditText开发的一个容易忽略的坑的更多相关文章

  1. 实验四Java Android简易开发

    实验准备 Android Studio下载 Android Studio安装 实验内容 Android Stuidio的安装测试 Android Stuidio的安装测试: 参考<Java和An ...

  2. 20162312实验四Java Android简易开发

    实验准备 Android Studio 的下载: Android Studio 安装教程 准备中遇到的问题 最大的问题就是电脑无法虚拟化,因为微星的型号太多,我只好在网上找了许多方案一个个试,最后终于 ...

  3. 俯瞰 Java 服务端开发

    原文首发于 github ,欢迎 star . Java 服务端开发是一个非常宽广的领域,要概括其全貌,即使是几本书也讲不完,该文将会提到许多的技术及工具,但不会深入去讲解,旨在以一个俯瞰的视角去探寻 ...

  4. java Android SDK安装与环境变量配置以及开发第一个Android程序

    JAVA的安装与环境变量的配置 1.先下载JAVA,并且安装. 下载地址:http://www.oracle.com/technetwork/java/javase/downloads/jdk-7u3 ...

  5. Android studio 开发一个用户登录界面

    Android studio 开发一个用户登录界面 activity_main.xml <?xml version="1.0" encoding="utf-8&qu ...

  6. Android NDK 开发(四)java传递数据到C【转】

    转载请注明出处:http://blog.csdn.net/allen315410/article/details/41845701 前面几篇文章介绍了Android NDK开发的简单概念.常见错误及处 ...

  7. 跟我学android-使用Eclipse开发第一个Android应用(三)

    打开Eclipse,选择 File—New –Android Application Project Application Name  就是我们的 应用名称,也是我们在手机应用程序列表里看到的名称. ...

  8. 关于Android App开发技术分类的一个小总结

     前言 本文从热更新.异步并发.性能优化.网络请求等多个方面对Android App开发的技术进行了一个分类总结.欢迎大家沟通交流. 热更新 [原]热更新开源项目Tinker源码解析之Dex热更新 [ ...

  9. 使用Kotlin开发第一个Android应用

    直奔主题 第一步:为AndroidStudio安装Kotlin插件 在线安装步骤:File—>Settings—>Plugins—>Install JetBrains plugin… ...

随机推荐

  1. C语言中数组变量和指针变量

    指针变量为什么需要类型? 数组变量和指针变量在使用sizeof时不同,sizeof(数组变量)是数组长度,sizeof(指针变量)是存储int的字节长度4或者8(64bit). 数组变量在参数传递中, ...

  2. C之attribute用法

    GNU C 的一大特色就是__attribute__ 机制.__attribute__ 可以设置函数属性(Function Attribute ).变量属性(Variable Attribute )和 ...

  3. 断路器(Curcuit Breaker)模式

    在分布式环境下,特别是微服务结构的分布式系统中, 一个软件系统调用另外一个远程系统是非常普遍的.这种远程调用的被调用方可能是另外一个进程,或者是跨网路的另外一台主机, 这种远程的调用和进程的内部调用最 ...

  4. springcloud(十三):Eureka 2.X 停止开发,但注册中心还有更多选择:Consul 使用详解

    在上个月我们知道 Eureka 2.X 遇到困难停止开发了,但其实对国内的用户影响甚小,一方面国内大都使用的是 Eureka 1.X 系列,另一方面 Spring Cloud 支持很多服务发现的软件, ...

  5. Python 学习 第十篇:正则表达式 - re

    规则表达式(Regular Expression, RE),又称作正则表达式,通常用于检索.替换符合指定规则的文本,正则表达式定义的规则,称作模式(Pattern),即正则表达式的作用是从文本中查找到 ...

  6. @Vue/Cli 3 Invalid Host header 检测关闭

    Invalid Host header 在本地开发等一般情况下,无论是 local,还是 ip,或者是 0.0.0.0,在 cli 中都默认为合法的,但是有些场景可能会被不支持,比如远程开发,或者是云 ...

  7. Python从菜鸟到高手(8):print函数、赋值与代码块

    1.神奇的print函数   print函数相信读者一定对它不陌生,因为在前面的章节,几乎每个例子都使用了print函数,这个函数的功能就是在控制台输出文本.不过print在输出文本时还可以进行一些设 ...

  8. [故障公告]阿里云“华东1地域部分负载均衡https访问异常“引起部分站点无法访问

    今天上午 9:40 - 11:06 左右,由于阿里云“华东1地域部分负载均衡https访问异常”,造成我们的部分站点(尤其是博客后台)无法正常访问,给您带来了很大的麻烦,请您谅解. 现已恢复正常,如果 ...

  9. IIS 日志导入到数据库的方法

    使用微软Log Parser 执行 logparser "SELECT * FROM d:\iislogs\u_ex18071705.log TO myTableName" -o: ...

  10. python代码风格指南:pep8 中文版

    本文档所提供的编码规范,适用于主要的Python发行版中组成标准库的Python代码.请参阅PEP关于Python的C实现的C编码风格指南的描述. 本文档和PEP257(文档字符串规范)改编自Guid ...