在进入一个Activity时,如果这个Activity中有EditText,则这个EditText会自动获取焦点,然后就会弹出软键盘,这样给用户体验不是很好。所以一般会通过代码控制让EditText不获取焦点。常用的方式如下,在Activity的布局文件中加上如下代码:

 <!-- 输入焦点控制 -->

    <LinearLayout
android:layout_width="0px"
android:layout_height="0px"
android:focusable="true"
android:focusableInTouchMode="true" />

在日前开发的一个项目中界面中除了EditText就是Spinner 和Button等空间,EditText 获取焦点以后,点击Spinner总是无法移除焦点:采取如下方式解决,

当点击Spinner时让EditText失去焦点即可:(见标红代码)

		// 初始化两个LayoutInflater对象
inflater = (LayoutInflater) getSystemService(Context.LAYOUT_INFLATER_SERVICE);
layoutInflater = (LayoutInflater) getSystemService(Context.LAYOUT_INFLATER_SERVICE); et_name = (EditText) findViewById(R.id.et_name);
ib_add = (ImageButton) findViewById(R.id.ib_add);
ib_clear = (Button) findViewById(R.id.ib_clear);
ib_query = (Button) findViewById(R.id.ib_query);
ib_down = (Button) findViewById(R.id.ib_down);
ib_save = (Button) findViewById(R.id.ib_save);
ib_back = (ImageButton) findViewById(R.id.ib_back);
// ib_sex = (ImageButton) findViewById(R.id.ib_sex) ; ib_add.setOnClickListener(this);
ib_clear.setOnClickListener(this);
ib_query.setOnClickListener(this);
ib_down.setOnClickListener(this);
ib_save.setOnClickListener(this);
ib_back.setOnClickListener(this);
// ib_sex.setOnClickListener(this) ; // 性别
ArrayAdapter<String> sexAdapter = new ArrayAdapter<String>(this, android.R.layout.simple_spinner_item);
sexAdapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
String sexString;
sexAdapter.clear();
int position = 0;
for (int i = 0; i < sexList.length; i++) {
sexString = sexList[i];
sexAdapter.add(sexString);
}
sp_sex = (Spinner) findViewById(R.id.sp_sex);
sp_sex.setAdapter(sexAdapter);
sp_sex.setFocusable(true);
sp_sex.setSelection(position);
sp_sex.setOnTouchListener(new OnTouchListener() {
@Override
public boolean onTouch(View v, MotionEvent event) {
// TODO Auto-generated method stub
et_name.clearFocus();
return false;
}
});
sp_sex.setOnTouchListener(new OnTouchListener() {
@Override
public boolean onTouch(View v, MotionEvent event) {
// TODO Auto-generated method stub
et_name.clearFocus();
return false;
}
});
sp_month.setOnTouchListener(new OnTouchListener() {
@Override
public boolean onTouch(View v, MotionEvent event) {
// TODO Auto-generated method stub
et_name.clearFocus();
return false;
}
});
sp_customerlevel.setOnItemSelectedListener(new OnItemSelectedListener() {
@Override
public void onItemSelected(AdapterView<?> parent, View view, int position, long id) {
TextView v1 = (TextView) view;
if (v1 != null)
v1.setTextColor(Color.BLACK); // 可以随意设置自己要的颜色值
} @Override
public void onNothingSelected(AdapterView<?> parent) { }
}); // 出生月份
ArrayAdapter<String> monthAdapter = new ArrayAdapter<String>(this, android.R.layout.simple_spinner_item);
monthAdapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
String monthString;
monthAdapter.clear();
position = 0;
for (int i = 0; i < monthList.length; i++) {
monthString = monthList[i];
monthAdapter.add(monthString);
}
sp_month = (Spinner) findViewById(R.id.sp_month);
sp_month.setAdapter(monthAdapter);
sp_month.setFocusable(true);
sp_month.setSelection(position);
sp_month.setOnItemSelectedListener(new OnItemSelectedListener() {
@Override
public void onItemSelected(AdapterView<?> parent, View view, int position, long id) {
TextView v1 = (TextView) view;
if (v1 != null)
v1.setTextColor(Color.BLACK); // 可以随意设置自己要的颜色值
} @Override
public void onNothingSelected(AdapterView<?> parent) { }
}); // 客户等级
ArrayAdapter<String> customerlevelAdapter = new ArrayAdapter<String>(this, android.R.layout.simple_spinner_item);
customerlevelAdapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
String customerlevelString;
customerlevelAdapter.clear();
position = 0;
for (int i = 0; i < customerlevelList.length; i++) {
customerlevelString = customerlevelList[i];
customerlevelAdapter.add(customerlevelString);
}
sp_customerlevel = (Spinner) findViewById(R.id.sp_customerlevel);
sp_customerlevel.setAdapter(customerlevelAdapter);
sp_customerlevel.setFocusable(true);
sp_customerlevel.setSelection(position);
sp_customerlevel.setOnItemSelectedListener(new OnItemSelectedListener() {
@Override
public void onItemSelected(AdapterView<?> parent, View view, int position, long id) {
TextView v1 = (TextView) view;
if (v1 != null)
v1.setTextColor(Color.BLACK); // 可以随意设置自己要的颜色值
} @Override
public void onNothingSelected(AdapterView<?> parent) { }
}); // 查询所有的客户资料
mCurrentData.clear();
mCurrentData = CustomerDBManager.getInstance().queryCustomerAll();
mAdapter = new SessionLocalAdapter(mCurrentData, CustomerMainActivity.this);
mListView = getListView();
mListView.setAdapter(mAdapter);
mListView.setFooterDividersEnabled(false); // 设成flase时,此ListView将不会在页脚视图前画分隔符。此属性缺省值为true。如果listview中没有添加页脚这个属性就不起作用。
mListView.setHeaderDividersEnabled(false); // 设成flase时,此ListView将不会在页眉视图前画分隔符。此属性缺省值为true。如果listview中没有添加页眉这个属性就不起作用。
mListView.setOnItemClickListener(this);
mListView.setOnItemLongClickListener(this);

如何在自己的Activity中去控制EditText的焦点的更多相关文章

  1. ListView中多个EditText设置焦点 多次点击异常报错

    08-17 18:23:09.825: ERROR/AndroidRuntime(1608): FATAL EXCEPTION: main 08-17 18:23:09.825: ERROR/Andr ...

  2. 【Android】12.3 在当前Activity中获取另一个Activity的返回值

    分类:C#.Android.VS2015: 创建日期:2016-02-23 一.简介 在上一节的示例中,通过StartActivity(Intent)方法启动另一个Activity后,这两个Activ ...

  3. android开发之在activity中控制另一个activity的UI更新

    转自:http://blog.csdn.net/jason0539/article/details/18075293 第一种方法: 遇到一个问题,需要在一个activity中控制另一个acitivit ...

  4. 【转】android之在activity中控制另一个activity的UI更新_如何在activity之间传递handler

    来自:http://blog.csdn.net/jason0539/article/details/18055259 遇到一个问题,需要在一个activity中控制另一个acitivity做一些更新, ...

  5. Android Activity返回键控制的两种方式

    Android Activity返回键监听的两种方式 1.覆写Activity的OnBackPressed方法 官方解释: Called when the activity has detected ...

  6. Android开发常见的Activity中内存泄漏及解决办法

    上一篇文章楼主提到由Context引发的内存泄漏,在这一篇文章里,我们来谈谈Android开发中常见的Activity内存泄漏及解决办法.本文将会以“为什么”“怎么解决”的方式来介绍这几种内存泄漏. ...

  7. Activity中UI框架基本概念

    Activity中UI框架基本概念 Activity 是应用程序的基本组成部分,提供了可视的界面,UI容器, 与用户进行交互: 具体Acitivity是怎么样显示这些事视图元素以及响应事件交互的. 一 ...

  8. 轻松了解Spring中的控制反转和依赖注入(二)

    紧接上一篇文章<轻松了解Spring中的控制反转和依赖注入>讲解了SpringIOC和DI的基本概念,这篇文章我们模拟一下SpringIOC的工作机制,使我们更加深刻的理解其中的工作. 类 ...

  9. Android 管理Activity中的fragments

    为了管理Activity中的fragments,需要使用FragmentManager,为了得到它,需要调用Activity中的getFragmentManager()方法,接下来详细介绍,感兴趣的朋 ...

随机推荐

  1. python 实现单链表

    #! /usr/bin/env python ### ### Linked List python implementation ### ### @reference Data Structures ...

  2. Linux编程环境介绍(3) -- linux下的c/c++程序开发

    目录: 1. 编辑器( Vi ) [vi 与 vim] vi(visual interface)是linux系统最重要的文本编辑器, 所有的 Unix-Like 系统都会内置vi文本编辑器.  vim ...

  3. linux杂记(五)正确关机方法(shutdown,reboot,init,halt)

    前言:由于在linux底下,每个程序(或者说是服务)都是在背景下运行的,因此,在你看不到的屏幕背后其实可能有相当多人同时在你的主机上面工作,如果 你直接按下电源开关来关机,则可能导致其他人的数据就此中 ...

  4. T-SQL应用,视图、存储过程、触发器、游标、临时表等

    sqlserver常用操作: 视图.存储过程.触发器.函数 --*********************批处理********************* --[在一个批处理中存有一个语法错误,则所有 ...

  5. Tomcat与Web服务器、应用服务器的关系

    Tomcat服务器是一个免费的开放源代码的Web应用服务器.因为Tomcat技术先进.性能稳定且免费,所以深受Java爱好者的喜爱并得到了部分软件开发商的认可,成为目前比较流行的Web应用服务器. A ...

  6. [LeetCode]题解(python):143-Reorder List

    题目来源: https://leetcode.com/problems/reorder-list/ 题意分析: 给定一个链表L:L0→L1→…→Ln-1→Ln,改变链表的排序为: L0→Ln→L1→L ...

  7. rsyslog 走tcp通讯配置

    发送端: local5.* @@192.168.32.76 front-end:/usr/local/nginx/logs# cat /etc/rsyslog.conf 日志服务器端配置: # Pro ...

  8. POJ 3294 Life Forms(后缀数组+二分答案)

    [题目链接] http://poj.org/problem?id=3294 [题目大意] 求出在至少在一半字符串中出现的最长子串. 如果有多个符合的答案,请按照字典序输出. [题解] 将所有的字符串通 ...

  9. PHP高手干货分享:要大大提高PHP效率

    1.用单引号代替双引号来包含字符串,这样做会更快一些.因为PHP会在双 引号包围的字符串中搜寻变量, 单引号则不会,注意:只有echo能这么做,它是一种可以把多个字符串当作参数的”函数”(译注:PHP ...

  10. Java基础:容器

    转载请注明出处:jiq•钦's technical Blog 一.Collection:存放独立元素 Collection中的接口都是可选操作,事实上现类 并不一定实现了其全部接口,这是为了防止&qu ...