【Java】Android EditText开发的一个容易忽略的坑
这几天接手做一个远程控制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开发的一个容易忽略的坑的更多相关文章
- 实验四Java Android简易开发
实验准备 Android Studio下载 Android Studio安装 实验内容 Android Stuidio的安装测试 Android Stuidio的安装测试: 参考<Java和An ...
- 20162312实验四Java Android简易开发
实验准备 Android Studio 的下载: Android Studio 安装教程 准备中遇到的问题 最大的问题就是电脑无法虚拟化,因为微星的型号太多,我只好在网上找了许多方案一个个试,最后终于 ...
- 俯瞰 Java 服务端开发
原文首发于 github ,欢迎 star . Java 服务端开发是一个非常宽广的领域,要概括其全貌,即使是几本书也讲不完,该文将会提到许多的技术及工具,但不会深入去讲解,旨在以一个俯瞰的视角去探寻 ...
- java Android SDK安装与环境变量配置以及开发第一个Android程序
JAVA的安装与环境变量的配置 1.先下载JAVA,并且安装. 下载地址:http://www.oracle.com/technetwork/java/javase/downloads/jdk-7u3 ...
- Android studio 开发一个用户登录界面
Android studio 开发一个用户登录界面 activity_main.xml <?xml version="1.0" encoding="utf-8&qu ...
- Android NDK 开发(四)java传递数据到C【转】
转载请注明出处:http://blog.csdn.net/allen315410/article/details/41845701 前面几篇文章介绍了Android NDK开发的简单概念.常见错误及处 ...
- 跟我学android-使用Eclipse开发第一个Android应用(三)
打开Eclipse,选择 File—New –Android Application Project Application Name 就是我们的 应用名称,也是我们在手机应用程序列表里看到的名称. ...
- 关于Android App开发技术分类的一个小总结
前言 本文从热更新.异步并发.性能优化.网络请求等多个方面对Android App开发的技术进行了一个分类总结.欢迎大家沟通交流. 热更新 [原]热更新开源项目Tinker源码解析之Dex热更新 [ ...
- 使用Kotlin开发第一个Android应用
直奔主题 第一步:为AndroidStudio安装Kotlin插件 在线安装步骤:File—>Settings—>Plugins—>Install JetBrains plugin… ...
随机推荐
- leetcode:Single Number
public int SingleNumber(int[] nums) { if(nums==null||nums.Length%2==0) return 0; int ret=nums[0]; fo ...
- 多线程-Callable、Future、FutureTask
我们普遍知道的创建线程的方式有两种,一种是继承Thread,一种是实现Runnable接口.这两种方式都无法获取任务执行完后的结果,并发包提供了Callable 类能够得到任务执行完的结果. 为何需要 ...
- 为什么大公司一定要使用DevOps?
0 DevOps的意图 究竟什么是DevOps? 要想回答这个问题,首先要明确DevOps这个过程参与的人员是谁?即开发团队和IT运维团队!那么,DevOps的意图是什么呢?即在两个团队之间,建立良好 ...
- Nginx 通过 Lua + Redis 实现动态封禁 IP
一.背景 为了封禁某些爬虫或者恶意用户对服务器的请求,我们需要建立一个动态的 IP 黑名单.对于黑名单之内的 IP ,拒绝提供服务. 二.架构 实现 IP 黑名单的功能有很多途径: 1.在操作系统层面 ...
- 001-电脑操作规范-2019年03月.doc
001-电脑操作规范-2019年03月.doc 本文作者:徐晓亮 BoAi 作者腾讯QQ号码:595076941 /////////////////////////////////////// ...
- 16-使用Selenium模拟浏览器抓取淘宝商品美食信息
淘宝由于含有很多请求参数和加密参数,如果直接分析ajax会非常繁琐,selenium自动化测试工具可以驱动浏览器自动完成一些操作,如模拟点击.输入.下拉等,这样我们只需要关心操作而不需要关心后台发生了 ...
- 20分钟 看图手写的table
<html><body><table width="100%" border="1" cellspacing="0&qu ...
- Tomcat集成Memcached Session Manager方案
http://repo1.maven.org/maven2/de/javakaffee/msm/memcached-session-manager/2.3.2/memcached-session-ma ...
- Java 找不到或者无法加载主类
1 测试Test 类的时候突然遇到一个很奇怪的问题,网上搜了很多资料才找到解决办法,大多数情况是因为类加了包名编译,执行的时候没有到包下去执行.与我遇到的情况不一样. 问题:写了一个测试类Test,在 ...
- ssm项目跨域访问
最近使用ssm开发了一个项目,为了项目的开发速度,采用的是前后端同时开发,所以前端文件没有集成在项目中,最后在调试时涉及到了跨域.跨域的解决方法很多,我采用的是最简单的一种,代码如下: 新建一个过滤器 ...