0

I'm trying to create an application that converts numbers in decimal, binary etc..; but I have a problem, when I use the keyboard that I created to put number in the editText, it appears first the world "null" and then the number that I click. why? I'am new to stack overflow, thank you. Another problem that I have to solve is how could I decide where to write the number to convert, I mean, when I press the HEX button I have to write the number in the dedicated EditText, also for the DEC button and the BIN button, how could I do it?

-----------.XML FILE-------


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

    <Button
        android:id="@+id/button0"
        android:layout_width="96dp"
        android:layout_height="80dp"
        android:onClick="inserimento_numeri"
        android:text="@string/button0"
        android:textColor="#000000"
        android:textSize="20sp"
        app:backgroundTint="#FFFFFF"
        app:iconTint="#FFFFFF"
        app:layout_constraintBottom_toBottomOf="parent"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintHorizontal_bias="0.383"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintTop_toTopOf="parent"
        app:layout_constraintVertical_bias="1.0"
        />

    <Button
        android:id="@+id/button1"
        android:layout_width="114dp"
        android:layout_height="80dp"
        android:onClick="inserimento_numeri"
        android:text="@string/button1"
        android:textColor="#000000"
        android:textSize="20sp"
        app:backgroundTint="#FFFFFF"
        app:iconTint="#FFFFFF"
        app:layout_constraintBottom_toBottomOf="parent"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintHorizontal_bias="0.0"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintTop_toTopOf="parent"
        app:layout_constraintVertical_bias="0.886" />

    <Button
        android:id="@+id/button2"
        android:layout_width="96dp"
        android:layout_height="80dp"
        android:onClick="inserimento_numeri"
        android:text="@string/button2"
        android:textColor="#000000"
        android:textSize="20sp"
        app:backgroundTint="#FFFFFF"
        app:iconTint="#FFFFFF"
        app:layout_constraintBottom_toBottomOf="parent"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintHorizontal_bias="0.383"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintTop_toTopOf="parent"
        app:layout_constraintVertical_bias="0.886" />

    <Button
        android:id="@+id/button3"
        android:layout_width="96dp"
        android:layout_height="80dp"
        android:onClick="inserimento_numeri"
        android:text="@string/button3"
        android:textColor="#000000"
        android:textSize="20sp"
        app:backgroundTint="#FFFFFF"
        app:iconTint="#FFFFFF"
        app:layout_constraintBottom_toBottomOf="parent"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintHorizontal_bias="0.707"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintTop_toTopOf="parent"
        app:layout_constraintVertical_bias="0.886" />

    <Button
        android:id="@+id/button4"
        android:layout_width="114dp"
        android:layout_height="80dp"
        android:onClick="inserimento_numeri"
        android:text="@string/button4"
        android:textColor="#000000"
        android:textSize="20sp"
        app:backgroundTint="#FFFFFF"
        app:iconTint="#FFFFFF"
        app:layout_constraintBottom_toBottomOf="parent"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintHorizontal_bias="0.0"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintTop_toTopOf="parent"
        app:layout_constraintVertical_bias="0.773" />

    <Button
        android:id="@+id/button5"
        android:layout_width="96dp"
        android:layout_height="80dp"
        android:onClick="inserimento_numeri"
        android:text="@string/button5"
        android:textColor="#000000"
        android:textSize="20sp"
        app:backgroundTint="#FFFFFF"
        app:iconTint="#FFFFFF"
        app:layout_constraintBottom_toBottomOf="parent"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintHorizontal_bias="0.383"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintTop_toTopOf="parent"
        app:layout_constraintVertical_bias="0.773" />

    <Button
        android:id="@+id/button6"
        android:layout_width="96dp"
        android:layout_height="80dp"
        android:onClick="inserimento_numeri"
        android:text="@string/button6"
        android:textColor="#000000"
        android:textSize="20sp"
        app:backgroundTint="#FFFFFF"
        app:iconTint="#FFFFFF"
        app:layout_constraintBottom_toBottomOf="parent"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintHorizontal_bias="0.707"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintTop_toTopOf="parent"
        app:layout_constraintVertical_bias="0.773" />

    <Button
        android:id="@+id/button7"
        android:layout_width="114dp"
        android:layout_height="80dp"
        android:onClick="inserimento_numeri"
        android:text="@string/button7"
        android:textColor="#000000"
        android:textSize="20sp"
        app:backgroundTint="#FFFFFF"
        app:iconTint="#FFFFFF"
        app:layout_constraintBottom_toBottomOf="parent"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintHorizontal_bias="0.0"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintTop_toTopOf="parent"
        app:layout_constraintVertical_bias="0.651" />

    <Button
        android:id="@+id/button8"
        android:layout_width="96dp"
        android:layout_height="80dp"
        android:onClick="inserimento_numeri"
        android:text="@string/button8"
        android:textColor="#000000"
        android:textSize="20sp"
        app:backgroundTint="#FFFFFF"
        app:iconTint="#FFFFFF"
        app:layout_constraintBottom_toBottomOf="parent"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintHorizontal_bias="0.384"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintTop_toTopOf="parent"
        app:layout_constraintVertical_bias="0.651" />

    <Button
        android:id="@+id/button9"
        android:layout_width="96dp"
        android:layout_height="80dp"
        android:onClick="inserimento_numeri"
        android:text="@string/button9"
        android:textColor="#000000"
        android:textSize="20sp"
        app:backgroundTint="#FFFFFF"
        app:iconTint="#FFFFFF"
        app:layout_constraintBottom_toBottomOf="parent"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintHorizontal_bias="0.707"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintTop_toTopOf="parent"
        app:layout_constraintVertical_bias="0.651" />


    <Button
        android:id="@+id/button"
        android:layout_width="114dp"
        android:layout_height="80dp"
        android:onClick="inserimento_numeri"
        android:text="@string/button"
        android:textColor="#000000"
        android:textSize="20sp"
        app:backgroundTint="#FFFFFF"
        app:iconTint="#FFFFFF"
        app:layout_constraintBottom_toBottomOf="parent"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintHorizontal_bias="0.0"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintTop_toTopOf="parent"
        app:layout_constraintVertical_bias="1.0" />

    <Button
        android:id="@+id/button10"
        android:layout_width="125dp"
        android:layout_height="104dp"
        android:onClick="scelta_base"
        android:text="@string/button10"
        android:textColor="#000000"
        android:textSize="20sp"
        app:backgroundTint="#FFFFFF"
        app:iconTint="#FFFFFF"
        app:layout_constraintBottom_toBottomOf="parent"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintHorizontal_bias="0.0"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintTop_toTopOf="parent"
        app:layout_constraintVertical_bias="0.0" />

    <Button
        android:id="@+id/button11"
        android:layout_width="125dp"
        android:layout_height="104dp"
        android:onClick="scelta_base"
        android:text="@string/button11"
        android:textColor="#000000"
        android:textSize="20sp"
        app:backgroundTint="#FFFFFF"
        app:iconTint="#FFFFFF"
        app:layout_constraintBottom_toBottomOf="parent"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintHorizontal_bias="0.0"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintTop_toTopOf="parent"
        app:layout_constraintVertical_bias="0.165" />

    <Button
        android:id="@+id/button12"
        android:layout_width="125dp"
        android:layout_height="104dp"
        android:onClick="scelta_base"
        android:text="@string/button12"
        android:textColor="#000000"
        android:textSize="20sp"
        app:backgroundTint="#FFFFFF"
        app:iconTint="#FFFFFF"
        app:layout_constraintBottom_toBottomOf="parent"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintHorizontal_bias="0.0"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintTop_toTopOf="parent"
        app:layout_constraintVertical_bias="0.331" />


    <EditText
        android:id="@+id/editText_BIN"
        android:layout_width="270dp"
        android:layout_height="105dp"
        android:ems="10"
        android:inputType="textFilter"
        android:longClickable="true"
        android:digits="0123456789ABCDEF"


        app:layout_constraintBottom_toBottomOf="parent"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintHorizontal_bias="1.0"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintTop_toTopOf="parent"
        app:layout_constraintVertical_bias="0.164"
        />

    <EditText
        android:id="@+id/editText_DEC"
        android:layout_width="270dp"
        android:layout_height="105dp"
        android:ems="10"
        android:inputType="text"
        android:digits="0123456789ABCDEF"

        app:layout_constraintBottom_toBottomOf="parent"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintHorizontal_bias="1.0"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintTop_toTopOf="parent"
        app:layout_constraintVertical_bias="0.0"
        />


    <EditText
        android:id="@+id/editText_HEX"
        android:layout_width="270dp"
        android:layout_height="105dp"
        android:ems="10"
        android:inputType="text"
        android:longClickable="true"
        android:digits="0123456789ABCDEF"

        app:layout_constraintBottom_toBottomOf="parent"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintHorizontal_bias="1.0"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintTop_toTopOf="parent"
        app:layout_constraintVertical_bias="0.33" />


</androidx.constraintlayout.widget.ConstraintLayout>
------MAIN ACTIVITY.JAVA-------------

package com.example.convertitore;

import android.annotation.SuppressLint;
import android.graphics.Color;
import android.os.Build;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;

import androidx.annotation.RequiresApi;
import androidx.appcompat.app.AppCompatActivity;

import java.util.EventListener;


public class MainActivity extends AppCompatActivity  {

    EditText editText_BIN, editText_DEC, editText_HEX;
    Button button10;        //DEC
    Button button11;        //BIN
    Button button12;        //HEX
    Button button1,button2,button3,button4,button5,button6,button7,button8,button9,button0,button;
    String result;


    @RequiresApi(api = Build.VERSION_CODES.LOLLIPOP)
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        //Basi convertitore
        editText_BIN = findViewById(R.id.editText_BIN);
        editText_DEC = findViewById(R.id.editText_DEC);
        editText_HEX = findViewById(R.id.editText_HEX);

        //Numeri della tastiera
        button1 = findViewById(R.id.button1);
        button2 = findViewById(R.id.button2);
        button3 = findViewById(R.id.button3);
        button4 = findViewById(R.id.button4);
        button5 = findViewById(R.id.button5);
        button6 = findViewById(R.id.button6);
        button7 = findViewById(R.id.button7);
        button8 = findViewById(R.id.button8);
        button9 = findViewById(R.id.button9);
        button0 = findViewById(R.id.button0);
        button = findViewById(R.id.button);
        button10 = findViewById(R.id.button10);
        button11 = findViewById(R.id.button11);
        button12 = findViewById(R.id.button12);

        hideKeyboard(editText_BIN);     //Funzioni che permettono l'utilizzo della tastiera creata dall'utente
        hideKeyboard(editText_DEC);
        hideKeyboard(editText_HEX);

    }

    @RequiresApi(api = Build.VERSION_CODES.LOLLIPOP)        //metodo che permette di nascondere la tastiera
    private void hideKeyboard(EditText editText){
        editText.setShowSoftInputOnFocus(false);

    }

    @SuppressLint({"SetTextI18n", "ResourceType"})         //Metodo per i numeri, button
    public void inserimento_numeri(View view) {



        Button button13 = (Button)view;
        String value = button13.getText().toString();

        int i = Integer.parseInt(value);
        String binary = Integer.toBinaryString(i);

        result+=value;
        editText_HEX.setText(result);
        //editText_BIN.setText(binary);




        }

    @SuppressLint("NonConstantResourceId")
    @RequiresApi(api = Build.VERSION_CODES.LOLLIPOP)
    public void scelta_base(View v){                    //Metodo per la scelta della base

        //button10;        //DEC
        //button11;        //BIN
        //button12;        //HEX

        switch(v.getId()) {
            case R.id.button10:

                editText_DEC.setFocusableInTouchMode(true);
                editText_BIN.setFocusable(false);
                editText_HEX.setFocusable(false);

                button10.setBackgroundColor(Color.BLUE); //Imposta il colore del bottone DEC blu
                button12.setBackgroundColor(Color.WHITE); //Imposta il colore del bottone HEX bianco
                button11.setBackgroundColor(Color.WHITE);  //Imposta il colore del bottone BIN blu

                break;

            case R.id.button11:

                editText_BIN.setFocusableInTouchMode(true);
                editText_DEC.setFocusable(false);
                editText_HEX.setFocusable(false);

                button11.setBackgroundColor(Color.BLUE);  //Imposta il colore del bottone BIN blu
                button10.setBackgroundColor(Color.WHITE); //Imposta il colore del bottone DEC bianco
                button12.setBackgroundColor(Color.WHITE); //Imposta il colore del bottone HEX bianco

                break;

            case R.id.button12:

                editText_HEX.setFocusableInTouchMode(true);
                editText_DEC.setFocusable(false);
                editText_BIN.setFocusable(false);

                button12.setBackgroundColor(Color.BLUE);  //Imposta il colore del bottone HEX blu
                button10.setBackgroundColor(Color.WHITE); //Imposta il colore del bottone DEC bianco
                button11.setBackgroundColor(Color.WHITE); //Imposta il colore del bottone BIN bianco

                break;

            default:
                //throw new IllegalStateException("Unexpected value: " + v.getId());
        }

    }

}
Francesco
  • 13
  • 2

1 Answers1

0

Change the declaration of result from

String result;

to

String result = "";

so that it is initialized with an empty String instead of null.

f1sh
  • 11,489
  • 3
  • 25
  • 51