Android实现用户登录界面edittext

实现用户登录,界面,自动聚焦电话号码输入框,按回车或换行符,自动跳转到密码输入框
获取密码 电话输入框中的内容,电话号码超过11位自动聚焦到密码输入框

**background:@null:**把edittext默认的下划线去掉

<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"
    tools:context=".MainActivity">
<!--
输入类型inputtype:
属性值:textpassword 密码
phone 输入类型为手机号
date 日期
number 数字
numberPassword 数字密码

-->
    <EditText
        android:id="@+id/et_phone"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:hint="请输入手机号码"
        android:inputType="phone"
        />

    <EditText
        android:id="@+id/et_password"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:inputType="textPassword"
        android:hint="请输入密码"
        />
    <Button
        android:id="@+id/submit"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:text="提交"/>
    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:id="@+id/tv_info"/>
</LinearLayout>

package com.example.syx.edittextdemo;

import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.text.Editable;
import android.text.TextWatcher;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.TextView;

public class MainActivity extends AppCompatActivity implements TextWatcher{

    private EditText et_phone;
    private EditText et_password;
    private Button submit;
    private TextView tv_info;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        //获取控件对象
        et_phone = (EditText)findViewById(R.id.et_phone);
        et_password= (EditText)findViewById(R.id.et_password);
        submit = (Button)findViewById(R.id.submit);
        tv_info = (TextView)findViewById(R.id.tv_info);

        //为手机号码编辑框获取焦点
        et_phone.requestFocus();

        //为按钮添加onclick事件
        submit.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {

                //获取编辑框中的内容,并转化为字符串
                String phone= et_phone.getText().toString();
                String password=et_password.getText().toString();

                //在textview中显示的内容
                tv_info.setText("手机号码为:"+phone+",密码为:"+password);
            }
        });

        //给电话号码编辑框添加文本框监听器
        et_phone.addTextChangedListener(this);

    }
    //实现输入完成后 光标的自动跳转到下一个editVIew
    /*1.MainActivity继承TextWatcher类,然后添加三个方法
      剩余步骤在文本改变触发三个方法详写
    * */
//在文本框改变之前触发,
    @Override
    public void beforeTextChanged(CharSequence s, int start, int count, int after) {
        //设置文本长度,用11-文本长度
        int length=11-s.length();
        if(length==0){
            et_password.requestFocus();
        }
    }
    //在文本框改变时触
    //实现手机号码为11位时,焦点自动跳转到下一个文本编辑框
    @Override
    public void onTextChanged(CharSequence s, int start, int before, int count) {
    }
    //在文本框改变之后触发
    //当有回车符或者换行符时,焦点自动向下一个文本编辑框跳转
    @Override
    public void afterTextChanged(Editable s) {
        //2.获取编辑框中的内容,并转为字符串
        String str=s.toString();
        //3.判断str中是否包含回车,换行符
        if(str.indexOf("\n")>=0||str.indexOf("\r")>=0){
            //4.将换行符或回车符去掉
            et_phone.setText(str.replace("\n","").replace("\r",""));
            //让密码输入框自动获取焦点
            et_password.requestFocus();

        }
    }






    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
        // Inflate the menu; this adds items to the action bar if it is present.
        getMenuInflater().inflate(R.menu.menu_main, menu);
        return true;
    }

    @Override
    public boolean onOptionsItemSelected(MenuItem item) {
        // Handle action bar item clicks here. The action bar will
        // automatically handle clicks on the Home/Up button, so long
        // as you specify a parent activity in AndroidManifest.xml.
        int id = item.getItemId();

        //noinspection SimplifiableIfStatement
        if (id == R.id.action_settings) {
            return true;
        }

        return super.onOptionsItemSelected(item);
    }


}

发布了57 篇原创文章 · 获赞 1 · 访问量 983

猜你喜欢

转载自blog.csdn.net/qq_45844648/article/details/104909375