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


    MainActivity:

    /**
     * 点击EditText窗体后,清除预设字
     * @author lichao829@163.com
     *
     */
    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>

  • 相关阅读:
    CSS团队协作规范
    百度前端学院-基础学院-第四课
    百度前端学院-基础学院-第三课
    百度前端学院-基础学院-第二课
    vue(三)-父子组件通信
    setTimeout()与clearTimeout()
    vue(二)-父子组件语法
    vue(一)使用vue-cli搭建项目
    CSS table-layout 属性
    git学习
  • 原文地址:https://www.cnblogs.com/Jingerxin/p/5106528.html
Copyright © 2020-2023  润新知