这几天接手做一个远程控制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);
}
}); }

最新文章

  1. iOS多线程之6.GCD的其他用法
  2. listview 的适配器 getview 随着软件健盘显示和隐藏,出现多个空的position问题
  3. python开启简单webserver
  4. easyui只打开一个tab
  5. PrincipalView的使用参数
  6. (转)Java DES 与Base64
  7. Distant Supervision for relation extraction without labeled data
  8. JAVA数字证书制作生成
  9. 【01】视C++为一个语言联邦
  10. HDU 4411 Arrest
  11. Python基础-类的探讨(class)
  12. Problem C: 学生的排序
  13. 【持续更新】JavaScript常见面试题整理
  14. 【前端工具】Chrome 扩展程序的开发与发布 -- 手把手教你开发扩展程序
  15. day22:初识面向对象
  16. Tigase-01 使用spark或spi登录Tigase服务器
  17. Failed to load driver class com.mysql.jdbc.Driver from HikariConfig class classloader sun.misc.Launcher$AppClassLoader@18b4aac2
  18. vue错误记录
  19. opengl 入门浅学(一)
  20. 二维码扫描开源库ZXing定制化

热门文章

  1. Google机器学习课程基于TensorFlow : https://developers.google.cn/machine-learning/crash-course
  2. OSGI基础环境搭建
  3. docker配置阿里云镜像加速
  4. mybatis 的sql语句及使用mybatis的动态sql mybatis防注入
  5. pandas数据的分组与分列
  6. Oracle和Elasticsearch数据同步
  7. Eclipse启动错误JVM terminated. exit code 1解决方法
  8. ReentrantLock源码分析
  9. 前端开发之jQuery库
  10. docker技术之安装