Puede crear la función onclicklistener() de varias maneras añadiendo una funcionalidad de clic al icono Drawable EditText.
Por ejemplo, si haces clic en el icono «añadir», añadirá valor al mostrado por el EditText . Y si hace clic en el icono «eliminar», reducirá su valor.
Otros artículos interesantes
activity_main.xml
En el layout, crea un EditText añadiendo iconos al » drawableStart » y al » drawableEnd «.
El código completo de activity_main.xml es el siguiente:
<?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>
Actividad principal
En MainActivity añadir » OnTouchListener » de la siguiente manera
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; }); } }