Android: View换切后,无法正常设置焦点或切换后TextView的虚拟键盘不弹出
边学、边测试,花了三天时间完工一个小应用。
遇到很多问题,但最终还是解决了。
我的手机是Android2.2版,所以我也在是2.2版环境下学习,开发。
1. 在同一个Activity中的不同View(layout)中切换界面时,经常发生TextView无法正常取得焦点。
或者更严重的情况是,有了焦点,但点击后,虚拟键盘不弹出,根本就无法正常输入数据。
我昨天晚上为了解决这个焦点和虚拟键盘不弹出的问题,花了三个小时。
最终的解决方法:
当由view1 切换到 view2 时:
setContentView(view2);  
  View v = getCurrentFocus();
  if(v!=null)
  {
   v.clearFocus(); //清空原来的焦点
  }    
  tNumber.requestFocus(); //取的焦点
我在网上看到有人说,当你执行到 setContentView()后,界面并没有马上绘制出来,当界面还没有完成绘制完成,就马上执行到了requestFocus(),所以无法正常取得焦点。
最根本的原因是什么,我还真的说不清楚,我是Android菜鸟...
2011-11-24
Android: View换切后,无法正常设置焦点或切换后TextView的虚拟键盘不弹出的更多相关文章
- 关于Android 打开新的Activity 虚拟键盘的弹出与不弹出
		关于Android 打开新的Activity 虚拟键盘的弹出与不弹出 打开Activity 时 在相应的情况 弹出虚拟键盘 或者 隐藏虚拟键盘 会给用户非常好的用户体验 , 实现起来也比较简单 只需 ... 
- Android中检测软键盘的弹出和关闭
		Android系统并没有提供明显的API来监听软键盘的弹出和关闭,但是在某些情况下我们还是有办法来检测软键盘的弹出和关闭. 从StackOverflow找到了一个不错的方法.但是这种只适用于在mani ... 
- Android 另类方法监听软键盘的弹出收起事件
		http://www.cnblogs.com/csonezp/p/5065624.html 最近做的项目碰到个问题,a界面是fragment+recyclerview,b界面带个edittext,并且 ... 
- Android软键盘强制弹出,隐藏输入法.
		本文实例讲述了Android实现弹出键盘代码,是一个非常实用的功能.代码非常简洁.分享给大家供大家参考. 具体功能代码如下: ? 1 2 3 4 5 6 7 8 Timer timer = new T ... 
- Android控制软键盘的弹出和隐藏
		弹出软键盘 前提:必须要有一个可以编辑的控件(EditText),并且当前已经获取焦点 /** * 弹出软键盘 */ public void openKeyboard(View view) { // ... 
- 在 Android 的文字编辑控件 (TEdit) 中, 如何按下 Enter 就隐藏虚拟键盘
		在 Windows 的应用中,我们常常为了让使用者能够快速输入,在Edit元件中的onKeyUp或者 onKeyDown 事件中主动侦测使用者输入的字元是否有换行符号 (Enter),当使用者按下了E ... 
- Android View 上下左右四种间距的设置方法
		RecyclerView控件大家肯定不陌生,已经应用有一段时间了,最近在项目中写一个GridLayout样式的RecyclerView时需要设置,item之间左右的间距,下面是我总结的一个设置间距的方 ... 
- idea 设置默认maven auto import,不需要每次都弹出
		1 2 误区 从这里点进去进行设置,或者每次打开项目右击下方的 auto impot都是不对的. 
- 阶段一:为View设置阴影和弹出动画(天气应用)
		“阶段一”是指我第一次系统地学习Android开发.这主要是对我的学习过程作个记录. 上一篇阶段一:通过网络请求,获得并解析JSON数据(天气应用)完成了应用的核心功能,接下来就要对它进行优化.今天我 ... 
随机推荐
- MariaDB 安装与启动 过程记录
			1. 安装之前的准备工作 rpm -qa |grep mysql rpm -qa |grep mariadb 按照查出来的软件包使用 yum remove 全部卸载,当然也可以 yum remov ... 
- Mysql之binlog日志说明及利用binlog日志恢复数据操作记录
			众所周知,binlog日志对于mysql数据库来说是十分重要的.在数据丢失的紧急情况下,我们往往会想到用binlog日志功能进行数据恢复(定时全备份+binlog日志恢复增量数据部分),化险为夷! 一 ... 
- python-lambda用法
			前言: lambda函数也叫匿名函数,即,函数没有具体的名称. 一.基础 lambda语句构建的其实是一个函数对象.匿名函数有个限制,就是只能有一个表达式,不用写return,返回值就是该表达式的结果 ... 
- 一个数据表通过另一个表更新数据(在UPDAT语句中使用FROM子句)
			在sql server中,update可以根据一个表的信息去更新另一个表的信息. 首先看一下语法: update A SET 字段1=B表字段表达式, 字段2=B表字段表达式 from B WHE ... 
- 附加题(一)——interesting的抄袭现象
			这次的作业很有意思,是让我们搜索抄袭的同学的个人总结,并让我们列出链接,时间,作者及原因.其实我不是很能理解,抄袭现象是可耻的不受推崇的这是无可厚非,但是为什么要求我们大部分没有抄袭的同学去探究抄袭同 ... 
- 20172319  《Java程序设计教程》第8周学习总结
			20172319 2018.04.24-05.03 <Java程序设计教程>第8周学习总结 目录 教材学习内容总结 教材学习中的问题和解决过程 代码调试中的问题和解决过程 代码托管 上周考 ... 
- Linux列举所有隐藏文件
			ll 命令是 ls -l的缩写 ls -a是列举所有(all)文件,包含隐藏文件,以.开头的文件. ls -l是以列表(list)方式列举文件. http://bbs.chinaunix.net/th ... 
- Selenium自动化测试框架
			如下图所示,为公司搭建的基于Selenium+Ant+TestNG+Jenkins的持续集成的自动化测试框架. Selenium: Page Object Model+Data Driver(Exce ... 
- node多文件处理方法
			let events = require('events'); let fs = require('fs'); // 将readfile封装成一个方法 多文件处理 function fnreadFi ... 
- [转帖]服务器操作系统应该选择 Debian/Ubuntu 还是 CentOS?
			来源:https://www.zhihu.com/question/19599986 作者: https://www.zhihu.com/people/yuan-hao-yang/answers IT ... 
