android 点击Edittext时hint值不自动隐藏问题
来源:互联网 发布:淘宝网在哪里买基金 编辑:程序博客网 时间:2024/06/05 17:08
android 点击Edittext时hint值不自动隐藏问题
当我们做注册界面或登录等界面时,需要在EditText里设置hint的值,来提醒用户该输入什么东西。但Android的EditText有一个不好的地方在于,当我们点击EditText时,它不会自动隐藏hint值,本文主要就是解决这个问题。
1.在这里,需要用到几个属性值:
android:focusable="true"//是否可聚焦 android:focusableInTouchMode="true"//是否是触摸方式获取焦点
要想让一个EditText默认状态为没有获得焦点,则必须在它的父布局里写入上述两个属性。
直接贴代码:
首先建立一个register.xml文件;
<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" android:background="@color/back_gray" android:id="@+id/main_ll" android:orientation="vertical" > <LinearLayout android:orientation="horizontal" android:background="@color/white" android:layout_width="fill_parent" android:layout_height="@dimen/height_50"> <ImageView android:id="@+id/image_back" android:layout_width="30dp" android:layout_height="wrap_content" android:layout_marginLeft="15.0dip" android:background="@color/white" android:src="@drawable/row2" /> <TextView android:textSize="@dimen/text_size_20" android:textColor="#000000" android:background="@color/white" android:gravity="center" android:layout_width="fill_parent" android:layout_height="fill_parent" android:text="注册" /> </LinearLayout> <LinearLayout android:layout_marginTop="20dp" android:background="@color/white" android:layout_width="match_parent" android:layout_height="40dp" android:orientation="horizontal" android:focusable="true" android:focusableInTouchMode="true" > <ImageView android:layout_width="25dp" android:layout_gravity="center" android:layout_margin="10dp" android:layout_height="25dp" android:src="@drawable/phonenum"/> <EditText android:id="@+id/phonenum_et" android:layout_width="match_parent" android:background="@null" android:layout_height="wrap_content" android:layout_gravity="center_vertical" android:textColor="#000000" android:hint="请输入您的手机号码"/> </LinearLayout> <LinearLayout android:layout_width="match_parent" android:background="@color/white" android:layout_height="1dp" android:orientation="horizontal"> <TextView android:layout_width="match_parent" android:layout_height="1dp" android:background="@color/back_gray" android:layout_marginLeft="8dp" android:layout_marginRight="8dp"/> </LinearLayout> <LinearLayout android:background="@color/white" android:layout_width="match_parent" android:layout_height="40dp" android:orientation="horizontal" > <ImageView android:layout_width="25dp" android:layout_gravity="center" android:layout_margin="10dp" android:layout_height="25dp" android:src="@drawable/yanzheng"/> <EditText android:id="@+id/putems_et" android:layout_width="0dp" android:layout_weight="2" android:background="@null" android:editable="true" android:layout_height="wrap_content" android:layout_gravity="center_vertical" android:textColor="#000000" android:hint="请输入短信验证码"/> <Button android:id="@+id/btn" android:layout_marginTop="5dp" android:layout_marginBottom="5dp" android:layout_marginRight="10dp" android:layout_width="wrap_content" android:textSize="10dp" android:textColor="#7cfc00" android:background="@drawable/btn_shape" android:layout_gravity="center_vertical" android:layout_height="wrap_content" android:text="获取验证码"/> </LinearLayout> <LinearLayout android:layout_width="match_parent" android:background="@color/white" android:layout_height="1dp" android:orientation="horizontal"> <TextView android:layout_width="match_parent" android:layout_height="1dp" android:background="@color/back_gray" android:layout_marginLeft="8dp" android:layout_marginRight="8dp"/> </LinearLayout> <LinearLayout android:background="@color/white" android:layout_width="match_parent" android:layout_height="40dp" android:orientation="horizontal" > <ImageView android:layout_width="25dp" android:layout_gravity="center" android:layout_margin="10dp" android:layout_height="25dp" android:src="@drawable/pwd"/> <EditText android:id="@+id/pwd_et" android:layout_width="match_parent" android:background="@null" android:editable="true" android:layout_height="wrap_content" android:layout_gravity="center_vertical" android:textColor="#000000" android:hint="请输入密码"/> </LinearLayout> <Button android:id="@+id/button1" android:layout_marginTop="20dp" android:layout_marginLeft="10dp" android:layout_marginRight="10dp" android:layout_width="match_parent" android:layout_height="wrap_content" android:background="@drawable/btn_shape_register" android:text="立即注册" /></LinearLayout>
在RegisterAct中:
package com.yds.newpowerbike.activity;import com.yds.newpowerbike.R;import android.app.Activity;import android.os.Bundle;import android.view.MotionEvent;import android.view.View;import android.view.View.OnClickListener;import android.view.View.OnFocusChangeListener;import android.view.View.OnTouchListener;import android.widget.EditText;import android.widget.LinearLayout;public class RegisterAct extends Activity{ private EditText phonenum_et,putems_et,pwd_et; private LinearLayout ll; @Override protected void onCreate(Bundle savedInstanceState) { // TODO Auto-generated method stub super.onCreate(savedInstanceState); setContentView(R.layout.activity_register); init(); } private void init(){ phonenum_et = (EditText) findViewById(R.id.phonenum_et); putems_et = (EditText) findViewById(R.id.putems_et); pwd_et = (EditText) findViewById(R.id.pwd_et); ll = (LinearLayout) findViewById(R.id.main_ll); phonenum_et.setOnFocusChangeListener(onFocusChangeListener); putems_et.setOnFocusChangeListener(onFocusChangeListener); pwd_et.setOnFocusChangeListener(onFocusChangeListener); ll.setOnTouchListener(onTouchListener); } /** * 给布局加触摸监听,当点击EditText之外的地方时 * EditText失去焦点 */ private OnTouchListener onTouchListener = new OnTouchListener() { @Override public boolean onTouch(View v, MotionEvent event) { // TODO Auto-generated method stub ll.setFocusable(true); ll.setFocusableInTouchMode(true); ll.requestFocus();//布局获得焦点 return false; } }; /** * 下面的OnFocusChangeListener的作用主要是 * 点击EditText时获取焦点并隐藏hint值 * */ private OnFocusChangeListener onFocusChangeListener = new OnFocusChangeListener() { @Override public void onFocusChange(View v, boolean hasFocus) { // TODO Auto-generated method stub switch (v.getId()) { case R.id.phonenum_et: setHintEt(phonenum_et,hasFocus); break; case R.id.putems_et: setHintEt(putems_et,hasFocus); break; case R.id.pwd_et: setHintEt(pwd_et, hasFocus); break; default: break; } } }; private void setHintEt(EditText et,boolean hasFocus){ String hint; if(hasFocus){ hint = et.getHint().toString(); et.setTag(hint); et.setHint(""); }else{ hint = et.getTag().toString(); et.setHint(hint); } }}
运行截图:
0 0
- android 点击Edittext时hint值不自动隐藏问题
- Android EditText设置默认不弹出软键盘,点击EditText外部隐藏软键盘,EditText获取焦点时隐藏hint
- android开发中EditText自动获取焦点时隐藏hint的代码
- Android EditText中的hint字体不统一问题
- EditText去掉光标下划线以及点击隐藏hint
- 自定义EditText获取焦点时hint隐藏,失去焦点时hint值显示
- Android中EditText隐藏/自动弹出输入法的问题
- EditText 点击即清除 hint
- android 点击edittext外面,隐藏输入法
- android edittext点击图片显示隐藏密码
- Android点击EditText外面隐藏输入法
- Android点击其他区域,隐藏EditText键盘。
- android 不自动focus EditText
- Android EditText 点击时不弹出键盘但显示光标
- Android EditText不为空时Button才可点击
- android代码中设置EditText的hint字体大小而不改变EditText的文字大小
- 点击EditText,隐藏键盘
- android EditText 默认情况下不获取焦点(不弹出输入法)+点击EditText时,不弹出键
- 【杭电oj】1090 - A+B for Input-Output Practice (II)
- 面试题52:不能被继承的类
- 如何选择 compileSdkVersion, minSdkVersion 和 targetSdkVersion
- ostep02--The Abstraction:The Process
- c++ 对象的复制与赋值
- android 点击Edittext时hint值不自动隐藏问题
- Android退出所有Activity最优雅的方式
- GIT - 日常操作(1)
- 树莓派配置交叉编译环境
- android头像设置:从本地照片库或拍照获取并剪裁
- CodeForces 609B The Best Gift
- 浅谈ClickableSpan , 实现TextView文本某一部分文字的点击响应
- ios开发 只让播放视频的 时候能够全屏横屏 其他全部非全屏非横屏
- Python在IDLE环境下常用快捷键