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.
Weitere interessante Artikel
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; }); } }