简体   繁体   English

EditText的drawableRight

[英]drawableRight of EditText

Below is my layout: 以下是我的布局:

<EditText
android:id="@+id/account_et"
android:layout_width="match_parent"
android:layout_height="fill_parent"
android:layout_weight="1"
android:drawableRight="@drawable/icon_backall"
android:ems="10"
android:hint="@string/str_md_email"
android:inputType="textEmailAddress"
android:padding="10dp" >
</EditText>

I want to show the drawableRight when EditText be focused. 我想在EditText聚焦时显示drawableRight。
And hide while without focus. 隐藏而没有焦点。
Another one is that I want to set OnClickListener of drawableRight. 另一个是我想设置drawableRight的OnClickListener。
How can I do? 我能怎么做?

i would suggest you to add imageView separated from the EditText and align him to be on top of him with align top and align right and that you have full control so you can invisible him and setOnClickListner 我建议你添加与EditText分开的imageView并将他对齐在他的顶部,对齐顶部并对齐右边,你有完全控制权,这样你就可以隐藏他和setOnClickListner

    <ImageView android:id="@+id/account_et"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignRight="@+id/account_et"
        android:layout_alignTop="@+id/account_et"
        android:background="@drawable/icon_backall">
    </ImageView>

Use View.OnFocusChangeListener . 使用View.OnFocusChangeListener Putting drawable to edittext when you catch the focus, then replacing drawable with null would solve the problem. 当你捕获焦点时将drawable放到edittext上,然后用null替换drawable将解决问题。

Use like belwo 像belwo一样使用

edittext.setOnFocusChangeListener(new OnFocusChangeListener() {

            @Override
            public void onFocusChange(View v, boolean hasFocus) {
                // TODO Auto-generated method stub
                           if(hasFocus)
                           {}
else {}


            }
        });

I hope my sample will help you 我希望我的样本能帮到你

activity_main.xml

<RelativeLayout 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" >

    <EditText
        android:id="@+id/editText1"
        android:layout_width="wrap_content"
        android:layout_height="130dp"
        android:layout_alignParentLeft="true"
        android:layout_alignParentRight="true"
        android:layout_alignParentTop="true"
        android:inputType="textEmailAddress" >
    </EditText>

    <ImageView
        android:id="@+id/imageView1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentRight="true"
        android:layout_alignParentTop="true"
        android:layout_marginRight="14dp"
        android:layout_marginTop="43dp"
        android:src="@drawable/ic_launcher"
        android:visibility="invisible" >
    </ImageView>

    <EditText
        android:id="@+id/editText2"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentLeft="true"
        android:layout_alignParentRight="true"
        android:layout_below="@+id/editText1"
        android:ems="10" >

        <requestFocus />
    </EditText>

</RelativeLayout>

this is the class file in which drawable options are performed 这是执行drawable选项的类文件

MainActivity.java

package com.example.doubtedittext;

import android.os.Bundle;
import android.app.Activity;
import android.app.AlertDialog;
import android.content.DialogInterface;
import android.view.View;
import android.widget.EditText;
import android.widget.ImageView;

public class MainActivity extends Activity {
    private EditText etext;
    private ImageView imageView1;

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        etext = (EditText) findViewById(R.id.editText1);
        imageView1 = (ImageView) findViewById(R.id.imageView1);
        etext.setOnFocusChangeListener(new View.OnFocusChangeListener() {

            @Override
            public void onFocusChange(View v, boolean hasFocus) {

                if (hasFocus) {
                    imageView1.setVisibility(View.VISIBLE);

                } else {

                    imageView1.setVisibility(View.INVISIBLE);
                }
            }
        });

        imageView1.setOnClickListener(new View.OnClickListener() {

            @Override
            public void onClick(View v) {

                AlertDialog.Builder alertDialogBuilder = new AlertDialog.Builder(
                        MainActivity.this);

                // set title
                alertDialogBuilder.setTitle("Your Title");

                // set dialog message
                alertDialogBuilder
                        .setMessage("Click yes to exit!")
                        .setCancelable(false)
                        .setPositiveButton("Yes",
                                new DialogInterface.OnClickListener() {
                                    public void onClick(DialogInterface dialog,
                                            int id) {
                                        // if this button is clicked, close
                                        // current activity
                                        MainActivity.this.finish();
                                    }
                                })
                        .setNegativeButton("No",
                                new DialogInterface.OnClickListener() {
                                    public void onClick(DialogInterface dialog,
                                            int id) {
                                        // if this button is clicked, just close
                                        // the dialog box and do nothing
                                        dialog.cancel();
                                    }
                                });

                // create alert dialog
                AlertDialog alertDialog = alertDialogBuilder.create();

                // show it
                alertDialog.show();

            }
        });

    }

}

the operation you required successfully performed above..... 您需要成功执行的操作.....

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM