android studio的Edit Text:

我们和往常一样用在mainActivity开始做

新建一个button:

<Button

        android:id=”@+id/but_EditText”

        android:layout_height=”wrap_content”

        android:layout_width=”match_parent”

        android:text=”Edit Text”

        android:layout_marginTop=”7dp”

        android:textAllCaps=”false”

        />

<!–    android:textAllCaps=”false”这个属性为控制大小写,默认为大写。–>

截屏2020-02-15下午11.54.52.png

然后给他设置一个跳转页面的事件。

首先声明组件:

private Button butEditText;

//声明组件

然后找到组件:

butEditText = findViewById(R.id.but_EditText);

butEditText.setOnClickListener(new View.OnClickListener() {

    @Override

    public void onClick(View v) {

        Intent intent = new Intent(MainActivity.this,EditTextActivity.class);

        startActivity(intent);

    }

});

新建一个新的Activity:

名字叫EditText。

然后再此处:

        Intent intent = new Intent(MainActivity.this,EditTextActivity.class);

填入:EditTextActivity.class

然后开始学习EditText

我们先把他的布局改成相对布局。

然后设置内边距:

android:padding=”30dp”

首先我们先新建一个TextView:

<TextView

    android:id=”@+id/tv1″

    android:layout_width=”371dp”

    android:layout_height=”127dp”

    android:text=”Login”

    android:textSize=”80dp”

    android:gravity=”center”/>

截屏2020-02-16上午12.00.43.png

然后我们在设置一个EditText的控件:

<EditText

    android:id=”@+id/et1″

    android:layout_width=”match_parent”

    android:layout_height=”60p”

    android:layout_below=”@id/tv1″

    android:layout_marginTop=”32dp”

    android:background=”@drawable/et1″

    android:hint=”username”

    android:textColor=”#ff3399″

    android:textSize=”25sp”

    android:paddingLeft=”10dp”

    android:paddingRight=”10dp”

    android:drawablePadding=”5dp”

    android:drawableLeft=”@drawable/face”

    android:singleLine=”true”/>

android:background=”@drawable/et1”我们用之前的方法来,把username框起来。@drawable/et1的代码见下文。

android:hint=”username”这个为提示文字的属性。

android:paddingLeft=”10dp”这个属性是因为用了背景的设置后我

们的提示文字太靠左了,所以要加个内边距来把文字像右移。

android:paddingRight=”10dp” 这个是为了不让输入文字的时候文字抵到后面的边框的。

android:drawableLeft=”@drawable/face”是我们username的一个icon(在阿里云找的)

android:drawablePadding=”5dp”这个为icon的内边距。

android:singleLine=”true”是为了吧文字输入多了不会过高二是往后面输入。

效果就是:

截屏2020-02-16上午12.14.45.png

然后就是密码框:

<EditText

    android:id=”@+id/et2″

    android:layout_width=”match_parent”

    android:layout_height=”60dp”

    android:layout_below=”@id/et1″

    android:layout_marginTop=”40dp”

    android:hint=”password”

    android:textSize=”25sp”

    android:textColor=”#ff3399″

    android:inputType=”textPassword”

    android:background=”@drawable/et1″

    android:paddingLeft=”10dp”

    android:paddingRight=”10dp”

    android:drawableLeft=”@drawable/locking”

    android:drawablePadding=”5dp”

    android:singleLine=”true”

    />

android:inputType=”textPassword”这个是把文字给特殊的字符给屏蔽掉因为是密码框。

其他的和用户名框一样。

截屏2020-02-16上午12.20.42.png

最后是登录按钮:

<Button

    android:id=”@+id/btn”

    android:layout_height=”60dp”

    android:layout_width=”match_parent”

    android:layout_below=”@id/et2″

    android:layout_marginTop=”60dp”

    android:background=”@drawable/but_6″

    android:text=”LOGIN”

    android:textSize=”25sp”

    android:textColor=”#000000″

    />

这个和之前的一样。

然后就是设置事件了。

首先设置登录按钮的事件:

private Button btn;

//声明

btn = findViewById(R.id.btn);

btn.setOnClickListener(new View.OnClickListener() {

    @Override

    public void onClick(View v) {

        Toast.makeText(EditTextActivity.this,“success!”,Toast.LENGTH_SHORT).show();

    }

});

//跳出提示。

因为这个之前讲过这里就不多赘述了。

看看效果:

截屏2020-02-16上午12.24.11.png

然后我们还可以给EditText设置事件的:

我在网上摘录了一个判断重复字符的方法:

public static boolean containRepeatChar(String str){

    if(str==null||str.isEmpty()){

        return false;

    }

    char[] elements=str.toCharArray();

    for(char e:elements){

        if(str.indexOf(e)!=str.lastIndexOf(e)){

            return true;

        }

    }

    return false;

}

//这个为我去网上找的一个判断字符是否重复的代码。

然后我们来判断username中输入的字符是否有重复,如果有重复我们就把给他一个提示,

首先声明组件

private EditText et;

//声明组件

//找到组件

et = findViewById(R.id.et1);

et.addTextChangedListener(new TextWatcher() {

    @Override

    public void beforeTextChanged(CharSequence s, int start, int count, int after) {

    }

    @Override

    public void onTextChanged(CharSequence s, int start, int before, int count) {

        if(containRepeatChar(s.toString()))

        {

            Toast.makeText(EditTextActivity.this,你输入了重复字符,Toast.LENGTH_LONG).show();

        }

    }

    //一般来说onTextChanged这个用的比较经常。

    //CharSequence s属性是你的输入的值。

    @Override

    public void afterTextChanged(Editable s) {

    }

});

et.addTextChangedListener(new TextWatcher(){}这个是为EditText添加事件的方法。

其中beforeTextChanged是输入前

onTextChanged为输入中

afterTextChange为输入后。

然后我们就在输入中对其输入的文字进行判断。

  if(containRepeatChar(s.toString()))

        {

            Toast.makeText(EditTextActivity.this,你输入了重复字符,Toast.LENGTH_LONG).show();

        }

并且输出小提示:Tosat

效果:

截屏2020-02-16上午12.32.32.png
最后修改日期:2020年2月21日

作者

留言

撰写回覆或留言

发布留言必须填写的电子邮件地址不会公开。