Java 转换/更改edittext输入以用于其他计算。

Java 转换/更改edittext输入以用于其他计算。,java,android,Java,Android,所以我有一个表格,其中有两个东西需要计算,每发球千卡(这是有效的)和每公斤千卡(这是我被卡住的地方) 基本上,从与单选按钮关联的编辑文本中,我需要执行一个计算,结果的数字需要在另一个公式中使用 比如说,如果有人在编辑文本中输入200,并选择单选按钮grams,我需要计算1000/200=5,并在另一个计算中使用5。 如果他们选择7盎司,我需要如下转换(1000/(7*28.3495))并在计算中使用该结果 我真的不知道该怎么做,因为我不断地遇到错误,结果是0或“无穷大” 下面是相关的代码,请注

所以我有一个表格,其中有两个东西需要计算,每发球千卡(这是有效的)和每公斤千卡(这是我被卡住的地方)

基本上,从与单选按钮关联的编辑文本中,我需要执行一个计算,结果的数字需要在另一个公式中使用

比如说,如果有人在编辑文本中输入200,并选择单选按钮grams,我需要计算1000/200=5,并在另一个计算中使用5。 如果他们选择7盎司,我需要如下转换(1000/(7*28.3495))并在计算中使用该结果

我真的不知道该怎么做,因为我不断地遇到错误,结果是0或“无穷大”

下面是相关的代码,请注意,它可能很难看(我只学了一天左右)

爪哇:

内容XML:

<ScrollView 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="wrap_content"
android:layout_height="wrap_content"
android:layout_weight="1"
app:layout_behavior="@string/appbar_scrolling_view_behavior"
tools:showIn="@layout/activity_k_cals">
<RelativeLayout 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"
scrollIndicators=-right--

    <TextView
        android:id="@+id/textView1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentTop="true"
        android:layout_centerHorizontal="true"
        android:layout_marginTop="30dp"
        android:textAlignment="center"
        android:text="Input the relevant nutritional information from your chosen dog food into this calculator to determine the amount of kCals present in each serving."
        android:textAppearance="?android:attr/textAppearanceMedium"
        />
    <TextView
        android:id="@+id/textView5"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentLeft="true"
        android:layout_below="@+id/textView1"
        android:layout_marginLeft="20dp"
        android:layout_marginTop="43dp"
        android:text="Serving Size"
        android:textAppearance="?android:attr/textAppearanceMedium" />

    <EditText
        android:id="@+id/txtNumber4"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignBottom="@+id/textView5"
        android:layout_alignRight="@+id/textView1"
        android:ems="2"
        android:inputType="numberDecimal" />

     <EditText
        android:id="@+id/txtNumber5"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignBottom="@+id/textView5"
        android:layout_alignRight="@+id/textView1"
        android:ems="2"
        android:inputType="numberDecimal" />

     <TextView
        android:id="@+id/textView2"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentLeft="true"
        android:layout_below="@+id/textView5"
        android:layout_marginLeft="20dp"
        android:layout_marginTop="43dp"
        android:text="Carbohydrates"
        android:textAppearance="?android:attr/textAppearanceMedium" />

    <EditText
        android:id="@+id/txtNumber1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignBottom="@+id/textView2"
        android:layout_alignRight="@+id/textView1"
        android:ems="2"
        android:inputType="numberDecimal" />

    <TextView
        android:id="@+id/textView3"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignLeft="@+id/textView2"
        android:layout_below="@+id/textView2"
        android:layout_marginTop="47dp"
        android:text="Protein"
        android:textAppearance="?android:attr/textAppearanceMedium" />
    <EditText
        android:id="@+id/txtNumber2"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:ems="2"
        android:inputType="numberDecimal"
        android:layout_above="@+id/textView4"
        android:layout_alignLeft="@+id/txtNumber3"
        android:layout_alignStart="@+id/txtNumber3" />

    <TextView
        android:id="@+id/textView4"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignLeft="@+id/textView2"
        android:layout_below="@+id/textView3"
        android:layout_marginTop="47dp"
        android:text="Fat"
        android:textAppearance="?android:attr/textAppearanceMedium" />

    <EditText
        android:id="@+id/txtNumber3"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_above="@+id/btnAdd"
        android:layout_alignLeft="@+id/txtNumber1"
        android:ems="2"
        android:inputType="numberDecimal" />

    <Button
        android:id="@+id/btnAdd"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignLeft="@+id/textView3"
        android:layout_below="@+id/textView4"
        android:layout_marginTop="46dp"
        android:text="kCals per serve" />

    <TextView
        android:id="@+id/txtResult"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:textAppearance="?android:attr/textAppearanceMedium"
        android:layout_alignBottom="@+id/btnAdd"
        android:layout_alignParentRight="true"
        android:layout_alignParentEnd="true" />


    <Button
        android:id="@+id/btnAdd2"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignLeft="@+id/textView3"
        android:layout_below="@+id/btnAdd"
        android:layout_marginTop="20dp"
        android:text="kCals per kg" />

    <TextView
        android:id="@+id/txtResult2"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignBottom="@+id/btnAdd2"
        android:textAppearance="?android:attr/textAppearanceMedium"
        android:layout_alignParentRight="true"
        android:layout_alignParentEnd="false"/>

<RadioGroup xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:orientation="horizontal"
    android:layout_alignBottom="@id/txtNumber4"
    android:layout_alignParentEnd="false"
    android:layout_alignParentRight="false"
    android:layout_alignParentStart="false"
    android:layout_alignParentLeft="false"
    android:layout_toStartOf="@id/txtNumber4"
    android:layout_toLeftOf="@id/txtNumber4"
    android:id="@+id/groupRadio">

    <RadioButton android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="grams"
        android:checked="true"
        android:layout_marginRight="15dp"
        android:id="@+id/radioButton1"
        android:onClick="onRadioButtonClicked"/>

    <RadioButton
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="ounces"
        android:layout_marginRight="15dp"
        android:id="@+id/radioButton2"
        android:onClick="onRadioButtonClicked" />
</RadioGroup>

    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:id="@+id/kcalKG"
        android:layout_alignTop="@+id/btnAdd2"
        android:layout_alignRight="@+id/txtNumber3"
        android:layout_alignEnd="@+id/txtNumber3"/>
</RelativeLayout>


我已经编辑了您的代码,请尝试使用此。始终以礼貌和干净的方式更正代码,以便其他人能够理解。检查一下,让我知道

EditText firstNumber;
EditText secondNumber;
EditText thirdNumber;
EditText serving;
TextView addResult;
TextView addResult2;
Button btnAdd;
Button btnAdd2;
RadioButton gradio, oradio;
double num1, num2, num3, num4, sum, serve, sumkg;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_k_cals);
    Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);
    setSupportActionBar(toolbar);
    getSupportActionBar().setDisplayHomeAsUpEnabled(true);
    this.getWindow().setSoftInputMode(
            WindowManager.LayoutParams.SOFT_INPUT_STATE_ALWAYS_HIDDEN);

    {
        firstNumber = (EditText) findViewById(R.id.txtNumber1);
        secondNumber = (EditText) findViewById(R.id.txtNumber2);
        thirdNumber = (EditText) findViewById(R.id.txtNumber3);
        addResult = (TextView) findViewById(R.id.txtResult);
        btnAdd = (Button) findViewById(R.id.btnAdd);
        firstNumber = (EditText) findViewById(R.id.txtNumber1);
        secondNumber = (EditText) findViewById(R.id.txtNumber2);
        thirdNumber = (EditText) findViewById(R.id.txtNumber3);
        serving = (EditText) findViewById(R.id.txtNumber4);
        addResult2 = (TextView) findViewById(R.id.txtResult2);
        btnAdd2 = (Button) findViewById(R.id.btnAdd2);

        btnAdd.setOnClickListener(new View.OnClickListener() {

            public void onClick(View v) {
                num1 = Double.parseDouble(firstNumber.getText().toString());
                num2 = Double
                        .parseDouble(secondNumber.getText().toString());
                num3 = Double.parseDouble(thirdNumber.getText().toString());
                sum = (num1 * 4) + (num2 * 4) + (num3 * 9);
                addResult.setText(String.format("%.2f", sum));
            }

        });

        btnAdd2.setOnClickListener(new View.OnClickListener()

        {
            public void onClick(View v) {
                num1 = Double.parseDouble(firstNumber.getText().toString());
                num2 = Double
                        .parseDouble(secondNumber.getText().toString());
                num3 = Double.parseDouble(thirdNumber.getText().toString());
                num4 = Double.parseDouble(serving.getText().toString());
                sum = (num1 * 4) + (num2 * 4) + (num3 * 9);
                sumkg = (serve * sum);
                addResult2.setText(String.format("%.2f", sumkg));
            }

        });

    }

}

public void onRadioButtonClicked(View v) {
    // require to import the RadioButton class
    gradio = (RadioButton) findViewById(R.id.radioButton1);
    oradio = (RadioButton) findViewById(R.id.radioButton2);

    // is the current radio button now checked?
    boolean checked = ((RadioButton) v).isChecked();

    // now check which radio button is selected
    // android switch statement
    switch (v.getId()) {

    case R.id.radioButton1:
        if (checked)
            serve = (1000 / num4);
        break;

    case R.id.radioButton2:
        if (checked)
            serve = (1000 / num4);
        break;

    }

}
}

EditText firstNumber;
EditText secondNumber;
EditText thirdNumber;
EditText serving;
TextView addResult;
TextView addResult2;
Button btnAdd;
Button btnAdd2;
RadioButton gradio, oradio;
double num1, num2, num3, num4, sum, serve, sumkg;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_k_cals);
    Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);
    setSupportActionBar(toolbar);
    getSupportActionBar().setDisplayHomeAsUpEnabled(true);
    this.getWindow().setSoftInputMode(
            WindowManager.LayoutParams.SOFT_INPUT_STATE_ALWAYS_HIDDEN);

    {
        firstNumber = (EditText) findViewById(R.id.txtNumber1);
        secondNumber = (EditText) findViewById(R.id.txtNumber2);
        thirdNumber = (EditText) findViewById(R.id.txtNumber3);
        addResult = (TextView) findViewById(R.id.txtResult);
        btnAdd = (Button) findViewById(R.id.btnAdd);
        firstNumber = (EditText) findViewById(R.id.txtNumber1);
        secondNumber = (EditText) findViewById(R.id.txtNumber2);
        thirdNumber = (EditText) findViewById(R.id.txtNumber3);
        serving = (EditText) findViewById(R.id.txtNumber4);
        addResult2 = (TextView) findViewById(R.id.txtResult2);
        btnAdd2 = (Button) findViewById(R.id.btnAdd2);

        btnAdd.setOnClickListener(new View.OnClickListener() {

            public void onClick(View v) {
                num1 = Double.parseDouble(firstNumber.getText().toString());
                num2 = Double
                        .parseDouble(secondNumber.getText().toString());
                num3 = Double.parseDouble(thirdNumber.getText().toString());
                sum = (num1 * 4) + (num2 * 4) + (num3 * 9);
                addResult.setText(String.format("%.2f", sum));
            }

        });

        btnAdd2.setOnClickListener(new View.OnClickListener()

        {
            public void onClick(View v) {
                num1 = Double.parseDouble(firstNumber.getText().toString());
                num2 = Double
                        .parseDouble(secondNumber.getText().toString());
                num3 = Double.parseDouble(thirdNumber.getText().toString());
                num4 = Double.parseDouble(serving.getText().toString());
                sum = (num1 * 4) + (num2 * 4) + (num3 * 9);
                sumkg = (serve * sum);
                addResult2.setText(String.format("%.2f", sumkg));
            }

        });

    }

}

public void onRadioButtonClicked(View v) {
    // require to import the RadioButton class
    gradio = (RadioButton) findViewById(R.id.radioButton1);
    oradio = (RadioButton) findViewById(R.id.radioButton2);

    // is the current radio button now checked?
    boolean checked = ((RadioButton) v).isChecked();

    // now check which radio button is selected
    // android switch statement
    switch (v.getId()) {

    case R.id.radioButton1:
        if (checked)
            serve = (1000 / num4);
        break;

    case R.id.radioButton2:
        if (checked)
            serve = (1000 / num4);
        break;

    }

}