带有图标/按钮的Android EditText

时间:2016-02-09 10:01:08

标签: android android-edittext

如何获得EditText以下的那些?

enter image description here

x按钮删除插入的文本,只要按下,眼睛按钮就会显示清除密码。请注意,我将它们称为按钮,因为我不知道它们实际上是什么,也不知道它们是EditText本身的一部分还是它们是独立的视图。

5 个答案:

答案 0 :(得分:8)

您只需在EditText右侧添加一个按钮

即可
.parent {
    word-spacing: -1em;
}

.child {
    word-spacing: normal;
    display: inline-block;
}

答案 1 :(得分:4)

您可以使用android:drawableRight

EditText 中以XML格式设置文本右侧的 Drawable

android:drawableRight="@drawable/Your_drawable"

答案 2 :(得分:2)

设计支持库采用setPasswordVisibilityToggleEnabled方法:https://developer.android.com/reference/android/support/design/widget/TextInputLayout.html#setPasswordVisibilityToggleEnabled(boolean)

这对您的密码edittext有好处,但不适用于用户名。

答案 3 :(得分:1)

这是在结尾创建带有十字按钮的EditText的完美方式:

<FrameLayout
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_marginTop="9dp"
android:padding="5dp">

<EditText
    android:id="@+id/calc_txt_Prise"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:inputType="numberDecimal"  
    android:layout_marginTop="20dp"
    android:textSize="25dp"
    android:textColor="@color/gray"
    android:textStyle="bold"
    android:hint="@string/calc_txt_Prise"
    android:singleLine="true" />

<Button
    android:id="@+id/calc_clear_txt_Prise"      
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_marginRight="10dp"
    android:layout_gravity="right|center_vertical"
    android:background="@drawable/delete" />

现在要在点击后清除EditText,您可以使用

button.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            EditTextID.setText("");
        }
    });

为了在按下按钮之前显示密码,您可以这样实现:

yourButton.setOnTouchListener(new OnTouchListener() {
        public boolean onTouch(View v, MotionEvent event) {

               switch ( event.getAction() ) {
                case MotionEvent.ACTION_DOWN: 
                   editText.setInputType(InputType.TYPE_CLASS_TEXT);
                break;
                case MotionEvent.ACTION_UP: 
                    editText.setInputType(InputType.TYPE_CLASS_TEXT | InputType.TYPE_TEXT_VARIATION_PASSWORD);
                break;
                }
                return true;
        }
    });

答案 4 :(得分:0)

你可以用这个: android:drawableRight="@drawable/your_icon" 也可以点击此answer

可能有帮助