Я пытаюсь заполнить целое и число с плавающей точкой в поле EditText в моем приложении. Но мое приложение продолжает падать.
Вот так выглядит мой XMl
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout 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"
android:orientation="vertical"
tools:context=".MainActivity">
<EditText
android:id="@+id/int_LA"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:ems="10"
android:hint="LA"
android:inputType="number|numberDecimal" />
<EditText
android:id="@+id/int_LB"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:ems="10"
android:inputType="number|numberDecimal"
android:hint="LB"
android:layout_below="@id/int_LA"/>
</LinearLayout>
А это мой JAVA код
package com.example.plaatuitslagberekenen;
import androidx.appcompat.app.AppCompatActivity;
import android.os.Bundle;
import android.text.InputType;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.TextView;
import static android.text.InputType.*;
public class MainActivity extends AppCompatActivity {
Button button;
TextView result;
EditText int_LA, int_LB, int_LC, int_t, int_Ri_x, int_Ri_y;
double result_num;
double int_LA_num, int_LB_num, int_LC_num, int_t_num, int_Ri_x_num, int_Ri_y_num;
double k_factor;
double BA_1;
double BA_2;
double OneThirdth = 0.333333333;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
result = (TextView)findViewById(R.id.result);
int_LA = (EditText)findViewById(R.id.int_LA);
int_LA.setInputType(TYPE_CLASS_NUMBER | TYPE_NUMBER_FLAG_DECIMAL);
int_LB = (EditText)findViewById(R.id.int_LB);
int_LC = (EditText)findViewById(R.id.int_LC);
int_t = (EditText)findViewById(R.id.int_t);
int_Ri_x = (EditText)findViewById(R.id.int_Ri_x);
int_Ri_y = (EditText)findViewById(R.id.int_Ri_y);
button = (Button) findViewById(R.id.button);
button.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
//BA_1 = (double) (Math.PI / 180) * int_Ri_x_num * (double) (int_t_num + 0.33 * int_t_num );
int_LA_num = Integer.parseInt(int_LA.getText().toString());
int_LB_num = Integer.parseInt(int_LB.getText().toString());
int_LC_num = Integer.parseInt(int_LC.getText().toString());
int_t_num = Integer.parseInt(int_t.getText().toString());
int_Ri_x_num = Integer.parseInt(int_Ri_x.getText().toString());
int_Ri_y_num = Integer.parseInt(int_Ri_y.getText().toString());
//result_num = (int_t_num) + int_LC_num + int_LA_num + int_LB_num + int_Ri_x_num + int_Ri_y_num + k_factor;
result_num = ((int_LA_num - int_t_num) + (int_LB_num - (int_t_num * 2)) + (int_LC_num - int_t_num) + ((OneThirdth * int_t_num) / 90) * (int_Ri_x_num) + ((OneThirdth * int_t_num) / 90) * (int_Ri_y_num));
System.out.println(((OneThirdth * int_t_num) / 90) * (int_Ri_x_num));
result.setText(String.format("%.1f", result_num));
}
});
}
}
Я хочу иметь для LA_num иногда число с плавающей запятой, а иногда целое число. Как я могу преобразовать это в этот код.
РЕДАКТИРОВАТЬ:
result_num = ((int_LA_num - int_LB_num)
EDIT_2:
Crashlog после добавления "int_LA.setInputType (TYPE_CLASS_NUMBER | TYPE_NUMBER_FLAG_DECIMAL);":
2020-04-21 19:47:47.163 12202-12202/com.example.plaatuitslagberekenen D/AndroidRuntime: Shutting down VM
2020-04-21 19:47:47.164 12202-12202/com.example.plaatuitslagberekenen E/AndroidRuntime: FATAL EXCEPTION: main
Process: com.example.plaatuitslagberekenen, PID: 12202
java.lang.NumberFormatException: For input string: "100.0"
at java.lang.Integer.parseInt(Integer.java:615)
at java.lang.Integer.parseInt(Integer.java:650)
at com.example.plaatuitslagberekenen.MainActivity$1.onClick(MainActivity.java:52)
at android.view.View.performClick(View.java:7125)
at android.view.View.performClickInternal(View.java:7102)
at android.view.View.access$3500(View.java:801)
at android.view.View$PerformClick.run(View.java:27336)
at android.os.Handler.handleCallback(Handler.java:883)
at android.os.Handler.dispatchMessage(Handler.java:100)
at android.os.Looper.loop(Looper.java:214)
at android.app.ActivityThread.main(ActivityThread.java:7356)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:492)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:930)
2020-04-21 19:47:47.186 12202-12202/com.example.plaatuitslagberekenen I/Process: Sending signal. PID: 12202 SIG: 9