Android 点击EditText编辑框清除hint预设字

MainActivity:

/**
 * 点击EditText窗体后,清除预设字
 * @author [email protected]
 *
 */
public class MainActivity extends Activity{

@Override
 protected void onCreate(Bundle savedInstanceState) {
  // TODO Auto-generated method stub
  super.onCreate(savedInstanceState);
  setContentView(R.layout.activity_main);
  EditText username = (EditText)findViewById(R.id.username);
  EditText password = (EditText)findViewById(R.id.password);
  Button login = (Button)findViewById(R.id.login);
  
  /*EditText默认获取焦点行为的取消?
  解决之道:在EditText的父级控件中,
  设置: android:focusable="true" 
              android:focusableInTouchMode="true"
     详见xml布局文件。*/

//username焦点监听事件
  username.setOnFocusChangeListener(new OnFocusChangeListener() {
      public void onFocusChange(View v, boolean hasFocus) {
          EditText et=(EditText)v;
          if (!hasFocus) {// 失去焦点
           et.setHint(et.getTag().toString());
          } else {
              String hint=et.getHint().toString();
              et.setTag(hint);//保存预设字
              et.setHint(null);
          }
      }
  });
  //password焦点监听事件
  password.setOnFocusChangeListener(new OnFocusChangeListener() {
   public void onFocusChange(View v, boolean hasFocus) {
    EditText et=(EditText)v;
    if (!hasFocus) {// 失去焦点
     et.setHint(et.getTag().toString());
    } else {
     String hint=et.getHint().toString();
     et.setTag(hint);//保存预设字
     et.setHint(null);
    }
   }
  });
  
  login.setOnClickListener(new OnClickListener() {
    
    @Override
    public void onClick(View v) {
     // TODO Auto-generated method stub
     Toast.makeText(MainActivity.this, "登录", Toast.LENGTH_LONG).show();
    }
  });
 }
}

布局界面:

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:padding="8dp"
    android:focusable="true"
    android:focusableInTouchMode="true"
    android:orientation="vertical" >
    <EditText
        android:id="@+id/username"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:hint="请输入您的用户名"/>
    <EditText
        android:id="@+id/password"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:hint="请输入您的密码"/>
    <Button
        android:id="@+id/login"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:hint="登录"/>

</LinearLayout>

时间: 2024-12-09 20:55:48

Android 点击EditText编辑框清除hint预设字的相关文章

Android点击EditText文本框之外任何地方隐藏键盘的解决办法

1,实现方法一:通过给当前界面布局文件的父layout设置点击事件(相当于给整个Activity设置点击事件),在事件里进行键盘隐藏 <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:id="@+id/traceroute_rootview" android:layout_width="fill_parent" android:l

Android笔记:TextView和编辑框中添加图片,ImageSpan,SpannableStringBuilder用法

在TextView或者编辑框EditText中添加图片的方法,代码如下: import java.util.regex.Matcher; import java.util.regex.Pattern; import android.os.Bundle; import android.app.Activity; import android.text.Spannable; import android.text.SpannableStringBuilder; import android.text

EditText编辑框

<?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:ori

Android 修改EditText 编辑框的颜色

在创建 Android应用的时候,会自动的给EditText设置默认的颜色, ,要修改这个颜色可以在资源文件中修改"colorAccent"对应的颜色 资源文件: 如上图所示,修改完之后 也有其他的改变方法,等以后发现了在补充吧.

【Android笔记】EditText密码框中字体和普通输入框不同

用户名和密码框的英文字体是不同的,遇到情况请看下图: 解决办法: xml中去掉: 1 android:password="true" java中: 1 EditText password = (EditText) findViewById(R.id.register_password_text); 2 password.setTypeface(Typeface.DEFAULT); 3 password.setTransformationMethod(new PasswordTransf

第6章、编辑框EditText与按钮Button(从零开始学Android)

在一个应用中,登录是经常使用的,下面我们学习一下如何开发一个登录窗口.我们需要学习Android中的基本控件:(1)EditText编辑框.(2)Button按钮. 一.设计登录窗口 打开"res/layout/activity_main.xml"文件. 1.分别从工具栏向activity拖出2个EditText(来自Text Fields).1个按钮(来自Form Widgets). 2.打开activity_main.xml文件. 代码自动生成如下:注意①和②虽同为EditText

Android 编辑框插入表情图片

首先,把整理好的表情图片以及布局用到的一些图片导入到项目的res/drawable目录中. 然后,编辑res/layout目录下布局.xml文件,这里我把oschina客户端的布局代码贴上来,供大家参考: tweet_pub.xml <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/a

在android中如何通过点击edittext之外的部分使软键盘隐藏

我们知道在android中点击edittext框就会自动弹出软键盘,那怎么通过点击edittext之外的部分使软键盘隐藏呢?(微信聊天时的输入框就是这个效果,这个给用户的体验还是很不错的) 首先我们要先定义一个隐藏软键盘的工具类方法: 1 public static void hideSoftKeyboard(Activity activity) { 2 InputMethodManager inputMethodManager = (InputMethodManager) activity.g

Android--点击EditText的时候弹出软键盘,点击EditText之外空白处软键盘消失

在android中点击EditText的时候会弹出软键盘,但当我们输入完毕或者想隐藏软键盘时,我们可以点击软键盘上的隐藏按钮,这种方法固然可行,但是为了提高用户体验,我们常常要实现这种功能:当输入完毕后想隐藏软键盘时我们通过直接点击EditText的之外的其他空白处就可以隐藏软键盘,这种做法明显比点击软键盘自身的隐藏按钮要方便的多. 要实现上述功能只需重写 public boolean onTouchEvent(MotionEvent event)方法,做相应软键盘隐藏的处理操作即可. Inpu