点击编辑框全选内容java_Android 中使用EditText 点击全选再次点击取消全选功能
最近在开发浏览器碰到这么一个需求:点击地址栏的时候,需要全选并调出键盘,再次点击就取消全选显示光标。点击屏幕除地址栏其他位置时,键盘隐藏,隐藏光标。
大部分浏览器都是这样的逻辑,这样可以提高用户体验,减少操作。
代码很简单,这里我简化了逻辑,页面只有一个EditText。
布局文件如下:里面有两个属性需要注意
android:focusable="true"
android:selectAllOnFocus="true"
完整布局文件
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:paddingBottom="@dimen/activity_vertical_margin"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
tools:context="com.example.edittexttest.MainActivity">
android:id="@+id/edit"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:focusable="true"
android:selectAllOnFocus="true"
/>
**mainactivity.java
package com.example.edittexttest;
import android.content.Context;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.MotionEvent;
import android.view.View;
import android.view.inputmethod.InputMethodManager;
import android.widget.EditText;
import android.widget.TextView;
public class MainActivity extends AppCompatActivity {
private EditText editText;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
editText = (EditText) findViewById(R.id.edit);
editText.setText("click to select all");
editText.clearFocus();
editText.setFocusableInTouchMode(false);
editText.setOnTouchListener(new View.OnTouchListener() {
@Override
public boolean onTouch(View view, MotionEvent motionEvent) {
if (motionEvent.getAction() == MotionEvent.ACTION_UP) {
editText.setFocusableInTouchMode(true);
editText.requestFocus();
editText.setText("click to select all");
editText.selectAll();
}
return false;
}
});
}
@Override
public boolean dispatchTouchEvent(MotionEvent ev) {
if (ev.getAction() == MotionEvent.ACTION_DOWN) {
View v = getCurrentFocus();
if (isShouldHideInput(v, ev)) {
InputMethodManager imm = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE);
if (imm.isActive()) {
imm.hideSoftInputFromWindow(v.getWindowToken(), 0);
}
}
return super.dispatchTouchEvent(ev);
}
// Necessary
if (getWindow().superDispatchTouchEvent(ev)) {
return true;
}
editText.clearFocus();
editText.setFocusableInTouchMode(false);
return onTouchEvent(ev);
}
public boolean isShouldHideInput(View v, MotionEvent event) {
if (v != null && (v instanceof EditText)) {
int[] leftTop = { 0, 0 };
//get location of TextView
v.getLocationInWindow(leftTop);
int left = leftTop[0];
int top = leftTop[1];
int bottom = top + v.getHeight();
int right = left + v.getWidth();
if (event.getX() > left && event.getX() < right
&& event.getY() > top && event.getY() < bottom) {
return false;
} else {
return true;
}
}
return false;
}
}
需要注意两个代码段
editText.setFocusableInTouchMode(true);
editText.requestFocus();
以上所述是小编给大家介绍的Android 中使用EditText 点击全选再次点击取消全选功能,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对脚本之家网站的支持!
点击编辑框全选内容java_Android 中使用EditText 点击全选再次点击取消全选功能相关推荐
- 点击编辑框全选内容java,js实现鼠标点击文本框自动选中内容的方法
本文实例讲述了js实现鼠标点击文本框自动选中内容的方法.分享给大家供大家参考.具体如下: 这里使用JS实现鼠标点击时自动选中文本框文本的效果,相信许多朋友都遇到这种功能的,就是当我们点击文本框的时候, ...
- DialogFragment常见问题(黑色棱角、点击编辑框外关闭软键盘..)
1.设置对话框外部的背景为完全透明: 在onStart()方法中加入以下代码: @Overridepublic void onStart() {super.onStart();/*** 将对话框外部( ...
- java之点击一次之后失效_JavaScript 事件绑定只能执行一次了,再次点击就变得无效 ,求助怎么回事...
点击收藏,弹出提示框,询问是否取消收藏,然后点击提示框里面的关闭按钮,关闭提示框后.再次点击那个触发事件的 收藏按钮就会无效 图片描述 var collectionBtn = document.que ...
- 点击文本框搜索,出现在下拉列表中
输入用户名发送请求到后台,将用户的custId返回回来,保存到form中,再提交.根据custId去搜寻 $("#custNameButton").click(function ( ...
- html 编辑框 空值变红,HTML中关于表单的提交和输入的值是否为空
文章出处:http://blog.csdn.net/lvhuiyang/article/details/53192277 //未填写的input 边框变红色 $('input[type=text]') ...
- html清空复选框的值,html,删除复选框选中的内容
首先是选中复选框,可以自己单击一个个的选,这个就不用多说了吧!也可以批量操作,如用全选按钮,主要是设置复选框的.checked值.可以通过调用javascript函数来实现. 方法如下: 复选框的定义 ...
- JS点击编辑内容并保存
一个标签,点击按钮使内容变成可编辑状态,然后使用保存数据.这个是点击编辑按钮使得标签内容替换为文本域来实现的.
- MFC的基本控件的使用~编辑框(Edit Controll)的使用
简单介绍一下编辑框的比较常用的属性: multiline :多行显示 WantReturn:使用回车 Auto HScroll:水平 无限延伸 Auto VScroll:垂直无限延伸 Vertica ...
- Android EditText 编辑框 获取焦点的方法
EditText 获取焦点的方法为:setOnFocusChangeListener 下面写一个EditText 编辑框获取焦点之后改变背景颜色 主要代码如下 public class MainAct ...
最新文章
- 详细介绍Python中的“魔术方法“__XXX___; 概述__str__()方法;__new__()方法; 三. __ new__ 和__init__的区别
- java异常处理试题答案_JAVA异常处理试题及答案
- WebKit Frame对象分析
- 在OEL5上安装配置Oracle Gird Control 10.2.0.5
- Java中的字符串分割
- 阿里巴巴投资以色列风投JVP 规模数千万美元
- Signal处理中的函数可重入问题
- 从90年代的SRNN开始,纵览循环神经网络27年的研究进展
- util包的常用类及其方法(上)
- mysql之jdbc连接数据库和sql注入的问题
- 【网络】HTTP 协议中 URI 和 URL 有什么区别?
- 转载:LTE中的各种ID含义
- 【bzoj2959】长跑【LCT+并查集】
- 计算机科学期刊是a类还是b类,期刊的A类B类C类什么意思
- 360全景拼接 opencv_GitHub - hellojiawa/AndroidPanoDemo: 使用Opencv全景照片拼接
- 我的世界java蜜蜂_在最新的《我的世界》Java版更新中 蜜蜂是所有的热点
- linux中权限sudo,Linux中sudo权限(下)
- 微信公众号【程序员杂货铺】
- 021淘宝轮播图制作
- JDK8-十大新特性-附demo
热门文章
- df添加一行 python_Python为输出的数据绘制表格
- 操作多台_一支热电偶能否连接多台显示仪表
- python中八皇后如何运算的_python解决八皇后算法
- C++17新特性之std::string_view
- java中字典算法_Java字典生成算法讲解
- 学习Spring Boot:(八)Mybatis使用分页插件PageHelper
- c语言c98标准,1.3.2 C语言标准
- java开发利器 源码_Java开发的利器: 反编译工具 JD-GUI
- 大于小于优化_架构 - 以MySQL为例,详解数据库索引原理及深度优化
- 资金时间价值的计算机应用视频讲解,第八章资金时间价值与方案经济比选20161018讲解.ppt...