Как получить int и double из вида редактирования и отобразить в текстовом представлении? Мне трудно это сделать…Я уже решил проблему с int

#android #android-edittext #int #textview

#Android #android-edittext #int #textview

Вопрос:

Это мой xml. У меня есть EditText и текстовое представление

 <TextView
                    android:layout_width="match_parent"
                    android:layout_height="wrap_content"
                    android:id="@ id/resultado"/>

<EditText
                android:id="@ id/a_edit_text"
                android:layout_width="match_parent"
                android:layout_height="match_parent"
                android:hint="Insira a"
                android:inputType="number"
                android:padding="36dp" />
  

Мой java-файл. Я уже преобразовал значение EditText в int, я думаю. Что я делаю не так?

 public class DiagnosticoActivity extends AppCompatActivity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_diagnostico);

        // Get a value from a editText
        EditText editTextA = (EditText) findViewById(R.id.a_edit_text);
        TextView resul = (TextView) findViewById(R.id.resultado);
        String variableA = editTextA.getText().toString(); //this will get a string

       int a = 0;
        try {
            a = Integer.parseInt(variableA);// will only work on numeric entries
            Log.v("DiagnosticoActivity", "Number a: "   a); // this log doesn't work...why?
            resul.setText("" a);  //Added "" here
        }
        catch (NumberFormatException e) {
            // handle incorrect text entry here
        } // a will be 0 if exception occurred

    }
}
  

Как я могу отобразить введенное число с помощью TextView?

Я пробовал это, но это не сработало…Что я должен делать?

 public class DiagnosticoActivity extends AppCompatActivity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_diagnostico);

    }

    public void calcular(View view){
        // Get a value from a editText
        EditText editTextA = (EditText) findViewById(R.id.a_edit_text);
        TextView resul = (TextView) findViewById(R.id.resultado);
        String variableA = editTextA.getText().toString(); //this will get a string
        int a = 0;
        try {
            a = Integer.parseInt(variableA);// will only work on numeric entries
            Log.v("DiagnosticoActivity", "Number a: "   a); // this log doesn't work...why?
            resul.setText(a);
        }
        catch (NumberFormatException e) {
            // handle incorrect text entry here
        } // a will be 0 if exception occurred

    }
}


<Button
                android:id="@ id/button_calcular"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:text="Calcular"
                android:layout_marginRight="8dp"
                android:onClick="calcular"/>

<TextView
                    android:layout_width="match_parent"
                    android:layout_height="wrap_content"
                    android:id="@ id/resultado"/>

<EditText
                android:id="@ id/a_edit_text"
                android:layout_width="match_parent"
                android:layout_height="match_parent"
                android:hint="Insira a"
                android:inputType="number"
                android:padding="36dp" />
  

 

Новый код Java

 public class DiagnosticoActivity extends AppCompatActivity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_diagnostico);

    }

    public void calcular(View view){
        // Get a value from a editText
        EditText editTextA = (EditText) findViewById(R.id.a_edit_text);
        TextView resul = (TextView) findViewById(R.id.resultado);
        String variableA = editTextA.getText().toString(); //this will get a string

        int a = 0;
        try {
            a = Integer.parseInt(variableA);// will only work on numeric entries
            Log.v("DiagnosticoActivity", "Number a: "   a); // this log doesn't work...why?
            resul.setText("" a);  //Added "" here
        }
        catch (NumberFormatException e) {
            // handle incorrect text entry here
        } // a will be 0 if exception occurred
    }
}
  

Теперь я хочу получить строку в виде редактирования, преобразовать в double и отобразить в текстовом представлении…Но мои приложения терпят крах!

 public class DiagnosticoActivity extends AppCompatActivity {
    EditText editTextA;
    EditText editTextB;
    EditText editTextC;
    EditText editTextD;

    TextView resu<
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_diagnostico);

        //Locate a View
        editTextA = (EditText) findViewById(R.id.a_edit_text);
        editTextB = (EditText) findViewById(R.id.b);
        editTextC = (EditText) findViewById(R.id.c);
        editTextD = (EditText) findViewById(R.id.d);
        result = (TextView) findViewById(R.id.resultado);
    }

    public void calcular(View view){
        // Get a value from a editText
        String variableA = editTextA.getText().toString(); //this will get a string
        String variableB = editTextB.getText().toString(); //this will get a string
        String variableC = editTextC.getText().toString(); //this will get a string
        String variableD = editTextD.getText().toString(); //this will get a string

        //Cast a String in a int or double
        double a = Double.parseDouble(variableA);
        int b = Integer.parseInt(variableB);
        int c = Integer.parseInt(variableC);
        int d = Integer.parseInt(variableD);

        double soma = a;

        result.setText(""   soma);

        /*double soma = a/b;
        String finalresult = new Double(soma).toString();
        NumberFormat nf = NumberFormat.getInstance();
        nf.setMinimumFractionDigits(0);
        nf.setMaximumFractionDigits(0);
        finalresult= nf.format(result);
        textView1.setText(finalresult);*/

        /*
        double soma = a/b;
        String stringDouble= Double.toString(soma);
        result.setText(""   stringDouble);*/

        /*int a = 0;
        int b = 0;
        try {
            a = Integer.parseInt(variableA);// will only work on numeric entries
            b = Integer.parseInt(variableB);// will only work on numeric entries
            Log.v("DiagnosticoActivity", "Number a: "   a);
        }
        catch (NumberFormatException e) {
            a = 0; // handle incorrect text entry here
        } // a will be 0 if exception occurred*/
    }
}
  

Ответ №1:

 public class DiagnosticoActivity extends AppCompatActivity {
EditText editTextA;
TextView resul;
@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_diagnostico);
    editTextA = (EditText) findViewById(R.id.a_edit_text);
    resul = (TextView) findViewById(R.id.resultado);
}

public void calcular(View view){
    // Get a value from a editText

    String variableA = editTextA.getText().toString(); //this will get a string
    resul.setText(variableA);

    int a = 0;
    try {
        a = Integer.parseInt(variableA);// will only work on numeric entries
        Log.v("DiagnosticoActivity", "Number a: "   a); // this log doesn't work...why?
    }
    catch (NumberFormatException e) {
       a = 0; // handle incorrect text entry here
    } // a will be 0 if exception occurred
}
}
  

Комментарии:

1. Ты гений! ЭТО СРАБОТАЛО!!! Позвольте мне понять алгоритм… Можете ли вы объяснить мне, что я делал не так? Спасибо!

2. Ничего особенного. Проблема только с этим утверждением. resul.setText(a); Получение ввода EditText в виде строки, преобразующей в int, и снова преобразующей его в строку для отображения в TextView. Вместо этого мы можем показать непосредственно выбранную строку (из EditText).

3. Я предлагаю вам попробовать и выполнить примеры для нужных вам тем, а не пробовать это самостоятельно. Это может помочь вам получить хорошие базовые знания о программировании на Android и Android.

4. Один вопрос. Показанное число является строкой или int? Это должно отображать переменную а вместо. Я прав?

5. Сделайте одно одолжение. Я удалю все свои ответы, кроме этого. Вы удаляете свои журналы ошибок и все остальное. Сохраняйте только код xml и Java.