Android进阶之路 - EditText一键清除内容

My God? 因为我们与IOS的不同,当我们需要清空EditText内容时,有时候无法进行清理,故现在才发现很早以前就已经有了处理方式,一种为原生处理,一种为自定义控件。

Android进阶之路 - EditText一键清除内容_第1张图片

如需在输入完成后显示删除按钮,可监听EditText焦点和TextWatch .

MainActivity :

package com.bakheet.effect.cleanedittext;

import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.text.TextUtils;
import android.view.View;
import android.widget.EditText;
import android.widget.ImageView;
import android.widget.TextView;
import android.widget.Toast;

public class MainActivity extends AppCompatActivity {

    private TextView mBtn;
    private ClearEditText mEdit;
    private EditText mEt_1;
    private ImageView mIv_1;
    private TextView mBtn_1;

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

        /**
         * 第一种方式 -  原始控件
         * */
        mBtn_1 = (TextView) findViewById(R.id.btn_1);
        mIv_1 = (ImageView) findViewById(R.id.iv_clear);
        mEt_1 = (EditText) findViewById(R.id.et_1);

        mIv_1.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                mEt_1.setText("");
            }
        });

        mBtn_1.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                if (TextUtils.isEmpty(mEt_1.getText().toString().trim())) {
                    //点击之后,失去焦点才会触发,没特殊要求就不必要使用了
                    //mEdit.setShakeAnimation();
                    Toast.makeText(MainActivity.this, "您输入的内容为空", Toast.LENGTH_SHORT).show();
                } else {
                    Toast.makeText(MainActivity.this, "一个月做完一个项目,有点难 > < !", Toast.LENGTH_SHORT).show();
                }
            }
        });


        /**
         * 第二种方式
         * */
        mEdit = (ClearEditText) findViewById(R.id.edit);
        mBtn = (TextView) findViewById(R.id.btn);

        mBtn.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                String data = mEdit.getText().toString().trim();
                if (TextUtils.isEmpty(data)) {
                    //点击之后,失去焦点才会触发,没特殊要求就不必要使用了
                    //mEdit.setShakeAnimation();
                    Toast.makeText(MainActivity.this, "您输入的内容为空", Toast.LENGTH_SHORT).show();
                } else {
                    Toast.makeText(MainActivity.this, "一个月做完一个项目,有点难 > < !", Toast.LENGTH_SHORT).show();
                }
            }
        });
    }
}

MainActivity Xml :


<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:id="@+id/activity_main"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical"
    tools:context="com.bakheet.effect.cleanedittext.MainActivity">

   <LinearLayout
       android:layout_width="match_parent"
       android:layout_height="wrap_content"
       android:orientation="horizontal"
       android:background="#999999"
       android:layout_marginLeft="10dp"
       android:layout_marginRight="10dp"
       android:layout_marginTop="10dp"
       >
    <EditText
        android:layout_width="0dp"
        android:layout_height="30dp"
        android:layout_weight="1"
        android:padding="5dp"
        android:background="@null"
        android:id="@+id/et_1"
        android:layout_centerVertical="true"
        android:textSize="13sp"
        android:hint="原始的Edit"
        />

        <ImageView
            android:id="@+id/iv_clear"
            android:layout_width="15dp"
            android:layout_height="15dp"
            android:src="@drawable/icon_clear_1"
            android:layout_alignParentRight="true"
            android:layout_centerInParent="true"
            android:layout_gravity="center"
            android:layout_marginRight="20dp"
            />
   LinearLayout>
    <TextView
        android:id="@+id/btn_1"
        android:layout_marginTop="5dp"
        android:layout_marginLeft="10dp"
        android:layout_marginRight="10dp"
        android:layout_width="match_parent"
        android:layout_height="30dp"
        android:text="确定"
        android:background="#963"
        android:textColor="#fff"
        android:padding="5dp"
        android:gravity="center"
        />

    <com.bakheet.effect.cleanedittext.ClearEditText
        android:id="@+id/edit"
        android:layout_width="match_parent"
        android:background="#999999"
        android:drawableLeft="@drawable/icon_edit"
        android:layout_marginTop="10dp"
        android:layout_marginLeft="10dp"
        android:layout_marginRight="10dp"
        android:singleLine="true"
        android:textSize="13sp"
        android:drawableRight="@drawable/icon_clear_2"
        android:paddingRight="5dp"
        android:hint="Clean 测试"
        android:textColor="#fff"
        android:layout_height="30dp" />

    <TextView
        android:id="@+id/btn"
        android:layout_marginTop="10dp"
        android:layout_marginLeft="10dp"
        android:layout_marginRight="10dp"
        android:layout_width="match_parent"
        android:layout_height="30dp"
        android:text="确定"
        android:background="#963"
        android:textColor="#fff"
        android:padding="5dp"
        android:gravity="center"
        />
LinearLayout>

第一种方式来源于OurSelf.

第二种方式来源于 :http://blog.csdn.net/xiaanming/article/details/11066685

此Demo完整代码,下载链接!

你可能感兴趣的:(Android进阶之路)