Wie man onClickListener in Drawable EditText erstellen

Sie können die Funktion onclicklistener() auf verschiedene Weise erstellen, indem Sie dem Drawable EditText-Symbol eine Klickfunktionalität hinzufügen.

Wenn Sie z. B. auf das Symbol „Hinzufügen“ klicken, wird der Wert, der im EditText angezeigt wird, erhöht. Und wenn Sie auf das Symbol „Entfernen“ klicken, wird der Wert verringert.

drawable click

activity_main.xml

Erstellen Sie im Layout einen EditText, indem Sie Symbole zu den Feldern „drawableStart“ und „drawableEnd“ hinzufügen.

Der vollständige Code für activity_main.xml lautet wie folgt:

<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context=".MainActivity">

    <EditText
        android:id="@+id/editText1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:drawableStart="@drawable/ic_baseline_remove_circle_24"
        android:drawableEnd="@drawable/ic_baseline_add_circle_24"
        android:ems="10"
        android:gravity="center_horizontal"
        android:inputType="textPersonName"
        android:text="1"
        app:layout_constraintBottom_toBottomOf="parent"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintTop_toTopOf="parent" />

</androidx.constraintlayout.widget.ConstraintLayout>

MainActivity

In MainActivity fügen Sie „OnTouchListener“ wie folgt hinzu

public class MainActivity extends AppCompatActivity {

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

        EditText myText = findViewById(R.id.editText1);
        myText.setOnTouchListener((view, motionEvent) -> {
            final int DRAWABLE_LEFT = 0;
            final int DRAWABLE_TOP = 1;
            final int DRAWABLE_RIGHT = 2;
            final int DRAWABLE_BOTTOM = 3;

            if (motionEvent.getAction() == MotionEvent.ACTION_UP) {
                if (motionEvent.getRawX() >= (myText.getRight() - myText.getCompoundDrawables()[DRAWABLE_RIGHT].getBounds().width())) {
                    Toast.makeText(MainActivity.this, "You clicked on Add Button", Toast.LENGTH_LONG).show();
                    return true;
                }
                if (motionEvent.getRawX() >= myText.getCompoundDrawables()[DRAWABLE_LEFT].getBounds().width()) {
                    Toast.makeText(MainActivity.this, "You clicked on Remove Button", Toast.LENGTH_LONG).show();
                    return true;
                }
            }
            return false;
        });
    }
}

VERWANDTE ARTIKEL

Neueste Artikel