Android EditText单击触发onclick事件处理

EditText没获得焦点前,单击只能获得焦点,并不触发onclick事件,网上已经有好多处理方法了。其处理方法都是用onTouchEvent事件处理,有时会很不方便。比如当使用数据绑定时!

其实单击直接触发onclick事件很容易处理的。

在layout中加下如下2行:

android:clickable="true"  //允许单击
android:focusableInTouchMode="false" //不获得焦点,此时会触发onclick事件

EditText中完整例子:

android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:clickable="true"
android:focusableInTouchMode="false"
android:onClick="@{EditTextClick}"  //数据绑定
android:text="@{user.firstName}">   //数据绑定

如果需要同时获得焦点,则在onclick处理中添加如下代码

(EditText) mEditText=(EditText)v;
//Log.i(mEditText.getTag().toString(),"点击了");
mEditText.setFocusable(true);
mEditText.setFocusableInTouchMode(true);
mEditText.requestFocus();
mEditText.requestFocusFromTouch();

还要自动弹出软键盘?!加入以下2行就行啦

InputMethodManager  inputManager =
       (InputMethodManager)mEditText.getContext().getSystemService(Context.INPUT_METHOD_SERVICE);
inputManager.showSoftInput(mEditText, 0);

原文地址:https://www.cnblogs.com/zhujiabin/p/9663512.html

时间: 2024-11-06 09:39:17

Android EditText单击触发onclick事件处理的相关文章

android基于监听的事件处理

android利用监听器来实现事件处理,有多种方法: //以下下import 包部分省略,复制时请自行导入 Activity本身作为事件监听器 activity_main.xml <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"     xmlns:tools="http://schemas.android.com/tools"     android:layo

Android中onTouch与onClick事件的关系

这几天遇到点关于Android的触摸事件相关的,还跟onClick有关,暂且记下: LinearLayout分别设置了onTouchListener,onClickListener,onLongClickListener及onTouchEvent回调 1.在屏幕上触摸之后基本的执行流程如下: onTouch,action=0onTouchEvent,action=0onTouch,action=2onTouchEvent,action=2onTouch,action=2onTouchEvent,

自定义的Android EditText

这是一个指定EditText,在我们的实际开发中,可以直接拿来用就行了,先上图看效果:        简单介绍下:当文本框有字符串时,在右边会显示一个清除的图标.点击清除的图标可以清除文本框的内容. 先上自定义编辑框代码:代码比较简单,值得注意的是onTouchEvent方法.这个是一个触摸事件,主要捕获清除图标,模拟点击事件. 1 package cn.datian.customedit; 2 3 import android.content.Context; 4 import android

Android按钮单击事件

1.获取代表控件的对象 2.定义一个类,实现监听器接口 3.生成监听器对象 4.为控件绑定监听器对象 button1 = (Button)findViewById(R.id.button1); //获取XMl中控件id button1.setOnClickListener(new OnClickListener() //生成监听器对象并且直接与控件绑定 { public void onClick(View v) //按钮单击事件 { editText1.setText("Yes!");

Android RecyclerView单击、长按事件标准实现:基于OnItemTouchListener + GestureDetector

?? Android RecyclerView单击.长按事件:基于OnItemTouchListener + GestureDetector标准实现 Android RecyclerView虽然拥有ListView绝大多数的功能,但Android RecyclerView却没有实现像ListView那样的点击事件.长按事件的标准实现方式,我在附录文章1中介绍的方式,实现了典型的RecyclerView的item点击事件,大致的思路是通过为RecyclerView的ViewHolder添加View

Android中四种OnClick事件的写法

package com.example.dailphone; import android.support.v7.app.ActionBarActivity; import android.support.v7.app.ActionBar; import android.support.v4.app.Fragment; import android.text.TextUtils; import android.content.Intent; import android.net.Uri; imp

android EditText控件如何禁止输入内容

问题? android EditText控件如何禁止往里面输入内容? 修改版解决方法: EditText editText =  (EditText) findViewById(R.id.editText1); editText.setKeyListener(null); 看到这个问题大家可能有点奇怪了,EditText的功能不就是往上面写入内容吗? 再者,如果真要禁止输入文本,在布局文件中添加 android:focusable="false", 或者在代码中使用editText.s

自定义绘制android EditText的背景,定义EditText文字的显示样式

EditText可以通过layer-list来绘制背景: <?xml version="1.0" encoding="utf-8"?> <layer-list xmlns:android="http://schemas.android.com/apk/res/android"> <item> <shape android:shape="rectangle" //框为矩形 > &l

android editText 软键盘enter键图标的设置

<EditText android:layout_marginTop="10dp" android:layout_width="match_parent" android:layout_height="wrap_content" android:hint="输入单位" android:layout_marginLeft="10dp" android:layout_marginRight="1