Search code examples
javaxmlandroid-studiotextviewimageview

How to create a clear button out out imageview?


So im currently doing a project that is due soon.

it consists of making a phone app with number buttons etc..

One of the questions that the teacher asked us is to add a Imageview and use it as a button to clear the TextView when there is 10 characters or over.

any help is appreciated, I'm still very new to Android coding so my knowledge is very bad haha

here is my Java code:

    Button no1,no2,no3,no4,no5,no6,no7,no8,no9,no0;
    TextView tv1;


    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        no1=(Button) findViewById(R.id.no1);
        no2=(Button) findViewById(R.id.no2);
        no3=(Button) findViewById(R.id.no3);
        no4=(Button) findViewById(R.id.no4);
        no5=(Button) findViewById(R.id.no5);
        no6=(Button) findViewById(R.id.no6);
        no7=(Button) findViewById(R.id.no7);
        no8=(Button) findViewById(R.id.no8);
        no9=(Button) findViewById(R.id.no9);
        no0=(Button) findViewById(R.id.no0);
        tv1=(TextView)findViewById(R.id.tv1);

        no1.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                tv1.setText(tv1.getText()+"1");
            }
        });
        no2.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                tv1.setText(tv1.getText()+"2");
            }
        });
        no3.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                tv1.setText(tv1.getText()+"3");
            }
        });
        no4.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                tv1.setText(tv1.getText()+"4");
            }
        });
        no5.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                tv1.setText(tv1.getText()+"5");
            }
        });
        no6.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                tv1.setText(tv1.getText()+"6");
            }
        });
        no7.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                tv1.setText(tv1.getText()+"7");
            }
        });
        no8.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                tv1.setText(tv1.getText()+"8");
            }
        });
        no9.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                tv1.setText(tv1.getText()+"9");
            }
        });
        no0.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                tv1.setText(tv1.getText()+"0");
            }
        });
    }
}

And here Is my XML:

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

    <TextView
        android:id="@+id/tv1"
        android:layout_width="262dp"
        android:layout_height="85dp"
        android:layout_marginTop="4dp"
        android:gravity="center|right"
        android:textSize="30sp"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintHorizontal_bias="1.0"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintTop_toTopOf="parent"
        android:maxLength="10"
        android:inputType="phone" />

    <ImageView
        android:id="@+id/btnclear"
        android:layout_width="79dp"
        android:layout_height="73dp"
        android:layout_marginStart="20dp"
        android:layout_marginTop="16dp"
        android:clickable="true"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintTop_toTopOf="parent"
        app:srcCompat="@drawable/phone_on" />

    <androidx.constraintlayout.widget.ConstraintLayout
        android:layout_width="345dp"
        android:layout_height="404dp"
        app:layout_constraintBottom_toBottomOf="parent"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintTop_toTopOf="parent"
        app:layout_constraintVertical_bias="0.994">

        <Button
            android:id="@+id/no7"
            android:layout_width="100dp"
            android:layout_height="100dp"
            android:text="7"
            android:textSize="30sp"
            app:layout_constraintBottom_toTopOf="@+id/no4"
            app:layout_constraintEnd_toStartOf="@+id/no8"
            app:layout_constraintHorizontal_bias="0.5"
            app:layout_constraintStart_toStartOf="parent"
            app:layout_constraintTop_toTopOf="parent" />

        <Button
            android:id="@+id/no8"
            android:layout_width="100dp"
            android:layout_height="100dp"
            android:text="8"
            android:textSize="30sp"
            app:layout_constraintBottom_toTopOf="@+id/no5"
            app:layout_constraintEnd_toStartOf="@+id/no9"
            app:layout_constraintHorizontal_bias="0.5"
            app:layout_constraintStart_toEndOf="@+id/no7"
            app:layout_constraintTop_toTopOf="parent" />

        <Button
            android:id="@+id/no9"
            android:layout_width="100dp"
            android:layout_height="100dp"
            android:text="9"
            android:textSize="30sp"
            app:layout_constraintBottom_toTopOf="@+id/no6"
            app:layout_constraintEnd_toEndOf="parent"
            app:layout_constraintHorizontal_bias="0.5"
            app:layout_constraintStart_toEndOf="@+id/no8"
            app:layout_constraintTop_toTopOf="parent" />

        <Button
            android:id="@+id/no4"
            android:layout_width="100dp"
            android:layout_height="100dp"
            android:text="4"
            android:textSize="30sp"
            app:layout_constraintBottom_toTopOf="@+id/no1"
            app:layout_constraintEnd_toStartOf="@+id/no5"
            app:layout_constraintHorizontal_bias="0.5"
            app:layout_constraintStart_toStartOf="parent"
            app:layout_constraintTop_toBottomOf="@+id/no7" />

        <Button
            android:id="@+id/no5"
            android:layout_width="100dp"
            android:layout_height="100dp"
            android:text="5"
            android:textSize="30sp"
            app:layout_constraintBottom_toTopOf="@+id/no2"
            app:layout_constraintEnd_toStartOf="@+id/no6"
            app:layout_constraintHorizontal_bias="0.5"
            app:layout_constraintStart_toEndOf="@+id/no4"
            app:layout_constraintTop_toBottomOf="@+id/no8" />

        <Button
            android:id="@+id/no6"
            android:layout_width="100dp"
            android:layout_height="100dp"
            android:text="6"
            android:textSize="30sp"
            app:layout_constraintBottom_toTopOf="@+id/no3"
            app:layout_constraintEnd_toEndOf="parent"
            app:layout_constraintHorizontal_bias="0.5"
            app:layout_constraintStart_toEndOf="@+id/no5"
            app:layout_constraintTop_toBottomOf="@+id/no9" />

        <Button
            android:id="@+id/no1"
            android:layout_width="100dp"
            android:layout_height="100dp"
            android:text="1"
            android:textSize="30sp"
            app:layout_constraintBottom_toTopOf="@+id/etoile"
            app:layout_constraintEnd_toStartOf="@+id/no2"
            app:layout_constraintHorizontal_bias="0.5"
            app:layout_constraintStart_toStartOf="parent"
            app:layout_constraintTop_toBottomOf="@+id/no4" />

        <Button
            android:id="@+id/no2"
            android:layout_width="100dp"
            android:layout_height="100dp"
            android:text="2"
            android:textSize="30sp"
            app:layout_constraintBottom_toTopOf="@+id/no0"
            app:layout_constraintEnd_toStartOf="@+id/no3"
            app:layout_constraintHorizontal_bias="0.5"
            app:layout_constraintStart_toEndOf="@+id/no1"
            app:layout_constraintTop_toBottomOf="@+id/no5" />

        <Button
            android:id="@+id/no3"
            android:layout_width="100dp"
            android:layout_height="100dp"
            android:text="3"
            android:textSize="30sp"
            app:layout_constraintBottom_toTopOf="@+id/Hashtag"
            app:layout_constraintEnd_toEndOf="parent"
            app:layout_constraintHorizontal_bias="0.5"
            app:layout_constraintStart_toEndOf="@+id/no2"
            app:layout_constraintTop_toBottomOf="@+id/no6" />

        <Button
            android:id="@+id/etoile"
            android:layout_width="100dp"
            android:layout_height="100dp"
            android:text="*"
            android:textSize="30sp"
            app:layout_constraintBottom_toBottomOf="parent"
            app:layout_constraintEnd_toStartOf="@+id/no0"
            app:layout_constraintHorizontal_bias="0.5"
            app:layout_constraintStart_toStartOf="parent"
            app:layout_constraintTop_toBottomOf="@+id/no1" />

        <Button
            android:id="@+id/no0"
            android:layout_width="100dp"
            android:layout_height="100dp"
            android:text="0"
            android:textSize="30sp"
            app:layout_constraintBottom_toBottomOf="parent"
            app:layout_constraintEnd_toStartOf="@+id/Hashtag"
            app:layout_constraintHorizontal_bias="0.5"
            app:layout_constraintStart_toEndOf="@+id/etoile"
            app:layout_constraintTop_toBottomOf="@+id/no2" />

        <Button
            android:id="@+id/Hashtag"
            android:layout_width="100dp"
            android:layout_height="100dp"
            android:text="#"
            android:textSize="30sp"
            app:layout_constraintBottom_toBottomOf="parent"
            app:layout_constraintEnd_toEndOf="parent"
            app:layout_constraintHorizontal_bias="0.5"
            app:layout_constraintStart_toEndOf="@+id/no0"
            app:layout_constraintTop_toBottomOf="@+id/no3" />
    </androidx.constraintlayout.widget.ConstraintLayout>

</androidx.constraintlayout.widget.ConstraintLayout>

And heres a Screenshot of my design: Design part

Thanks for the help


Solution

  • First, you will need to make your ImageView clickable in the XML:

    android:clickable="true"
    

    You can then set the OnClickListener on the ImageView like you did for the rest of your Buttons.