为了账号安全,请及时绑定邮箱和手机立即绑定

EditText光标的移动

标签:
Android

在做项目时,我们可能会遇到当输入框的内容变化后让光标自动显示在下一个输入框,这样就省去了手工的点击,从而提高了效率。

requestFocus() 获取焦点  即光标的显示

setOnFocusChangeListener  监听EditText焦点变化   当获取焦点后 hasFocus 为true

 

spacer.gif

具体演示的代码:

xml布局:

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"    xmlns:tools="http://schemas.android.com/tools"    android:layout_width="match_parent"    android:layout_height="match_parent"    android:orientation="vertical"    >    <EditText        android:id="@+id/et_name"        android:layout_width="match_parent"        android:layout_height="40dp"        android:hint="请输入姓名:" />     <EditText         android:id="@+id/et_pass"        android:layout_width="match_parent"        android:layout_height="40dp"        android:hint="请输入密码:" />      <Button          android:id="@+id/btn_request"          android:layout_width="match_parent"          android:layout_height="wrap_content"          android:text="密码框获取焦点"          />      <Button          android:id="@+id/btn_lose"          android:layout_width="match_parent"          android:layout_height="wrap_content"          android:text="密码框失去焦点"          /> </LinearLayout>


java代码:

package com.example.android_edittext; import android.os.Bundle; import android.app.Activity; import android.view.Menu; import android.view.View; import android.view.View.OnClickListener; import android.view.View.OnFocusChangeListener; import android.widget.Button; import android.widget.EditText; import android.widget.Toast; public class MainActivity extends Activity {    private EditText mEtName,mEtPass;    private Button btnRequest,btnLose;    @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_main);                        initView();        initEvents();    }     private void initEvents() { btnRequest.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { mEtName.setText("zm"); mEtPass.requestFocus(); } }); btnLose.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) {         mEtPass.setText("LP");         mEtName.requestFocus(); } }); mEtPass.setOnFocusChangeListener(new OnFocusChangeListener() { @Override public void onFocusChange(View v, boolean hasFocus) {   if(hasFocus){//获取焦点   Toast.makeText(MainActivity.this, "密码框获取到焦点了", Toast.LENGTH_SHORT).show();   }else{//失去焦点   Toast.makeText(MainActivity.this, "密码框失去焦点了", Toast.LENGTH_SHORT).show();   }   } }); } private void initView() {   mEtName=(EditText) findViewById(R.id.et_name);   mEtPass=(EditText) findViewById(R.id.et_pass);   btnRequest=(Button) findViewById(R.id.btn_request);   btnLose=(Button) findViewById(R.id.btn_lose);     }     }


原文链接:http://www.apkbus.com/blog-813041-62906.html

点击查看更多内容
TA 点赞

若觉得本文不错,就分享一下吧!

评论

作者其他优质文章

正在加载中
  • 推荐
  • 评论
  • 收藏
  • 共同学习,写下你的评论
感谢您的支持,我会继续努力的~
扫码打赏,你说多少就多少
赞赏金额会直接到老师账户
支付方式
打开微信扫一扫,即可进行扫码打赏哦
今天注册有机会得

100积分直接送

付费专栏免费学

大额优惠券免费领

立即参与 放弃机会
意见反馈 帮助中心 APP下载
官方微信

举报

0/150
提交
取消