我可以使用 if 语句来创建货币转换器应用程序吗?

Can I use a if statement to create a currency converter app?

我正在尝试制作一个具有简单货币系统的应用程序,该系统使用价值不同的铜、银和金。我希望该应用程序能够将一种货币转换为另一种货币。用户首先输入他们希望转换的金额。然后他们 select 该金额代表的货币以及他们希望将其转换为的货币。一旦他们 select 编辑了两个选项,单击“计算”将显示转换后的成本。我开始了我的代码,但作为初学者,最好的方法是使用 if 语句来解决这个问题 selected 按钮转换货币?

<?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/copperBt1"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:text="@string/copperBt1"
    app:layout_constraintBottom_toBottomOf="parent"
    app:layout_constraintEnd_toEndOf="parent"
    app:layout_constraintHorizontal_bias="0.151"
    app:layout_constraintStart_toStartOf="parent"
    app:layout_constraintTop_toTopOf="parent"
    app:layout_constraintVertical_bias="0.314" />

<Button
    android:id="@+id/silverBt1"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:text="@string/silverBt1"
    app:layout_constraintBottom_toBottomOf="parent"
    app:layout_constraintEnd_toEndOf="parent"
    app:layout_constraintHorizontal_bias="0.498"
    app:layout_constraintStart_toStartOf="parent"
    app:layout_constraintTop_toTopOf="parent"
    app:layout_constraintVertical_bias="0.313" />

<Button
    android:id="@+id/goldBt1"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:text="@string/goldBt1"
    app:layout_constraintBottom_toBottomOf="parent"
    app:layout_constraintEnd_toEndOf="parent"
    app:layout_constraintHorizontal_bias="0.848"
    app:layout_constraintStart_toStartOf="parent"
    app:layout_constraintTop_toTopOf="parent"
    app:layout_constraintVertical_bias="0.313" />

<Button
    android:id="@+id/copperBt2"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:text="@string/copperBt2"
    app:layout_constraintBottom_toBottomOf="parent"
    app:layout_constraintEnd_toEndOf="parent"
    app:layout_constraintHorizontal_bias="0.151"
    app:layout_constraintStart_toStartOf="parent"
    app:layout_constraintTop_toTopOf="parent"
    app:layout_constraintVertical_bias="0.515" />

<Button
    android:id="@+id/silverBt2"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:text="@string/silverBt2"
    app:layout_constraintBottom_toBottomOf="parent"
    app:layout_constraintEnd_toEndOf="parent"
    app:layout_constraintHorizontal_bias="0.498"
    app:layout_constraintStart_toStartOf="parent"
    app:layout_constraintTop_toTopOf="parent"
    app:layout_constraintVertical_bias="0.515" />

<Button
    android:id="@+id/goldBt2"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:text="@string/goldBt2"
    app:layout_constraintBottom_toBottomOf="parent"
    app:layout_constraintEnd_toEndOf="parent"
    app:layout_constraintHorizontal_bias="0.848"
    app:layout_constraintStart_toStartOf="parent"
    app:layout_constraintTop_toTopOf="parent"
    app:layout_constraintVertical_bias="0.515" />

<Button
    android:id="@+id/calculateBt"
    android:layout_width="250dp"
    android:layout_height="wrap_content"
    android:text="@string/calculateBt"
    app:layout_constraintBottom_toBottomOf="parent"
    app:layout_constraintEnd_toEndOf="parent"
    app:layout_constraintHorizontal_bias="0.496"
    app:layout_constraintStart_toStartOf="parent"
    app:layout_constraintTop_toTopOf="parent"
    app:layout_constraintVertical_bias="0.651" />

<TextView
    android:id="@+id/textViewFrom"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:text="@string/fromTxt"
    app:layout_constraintBottom_toBottomOf="parent"
    app:layout_constraintEnd_toEndOf="parent"
    app:layout_constraintHorizontal_bias="0.498"
    app:layout_constraintStart_toStartOf="parent"
    app:layout_constraintTop_toTopOf="parent"
    app:layout_constraintVertical_bias="0.257" />

<TextView
    android:id="@+id/textViewTo"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:text="@string/toTxt"
    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.446" />

<TextView
    android:id="@+id/textViewCost"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:text="@string/convertedCostTxt"
    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.742" />

<TextView
    android:id="@+id/textViewAmount"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:text="@string/amountTxt"
    app:layout_constraintBottom_toBottomOf="parent"
    app:layout_constraintEnd_toEndOf="parent"
    app:layout_constraintHorizontal_bias="0.045"
    app:layout_constraintStart_toStartOf="parent"
    app:layout_constraintTop_toTopOf="parent"
    app:layout_constraintVertical_bias="0.061" />

<EditText
    android:id="@+id/editTxt"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:ems="10"
    android:hint="@string/editTxt"
    android:inputType="textPersonName"
    app:layout_constraintBottom_toBottomOf="parent"
    app:layout_constraintEnd_toEndOf="parent"
    app:layout_constraintHorizontal_bias="0.582"
    app:layout_constraintStart_toStartOf="parent"
    app:layout_constraintTop_toTopOf="parent"
    app:layout_constraintVertical_bias="0.04"
    android:autofillHints="" />
</androidx.constraintlayout.widget.ConstraintLayout>

这是我的主要 activity 代码:

package com.currencyconverter;

import androidx.appcompat.app.AppCompatActivity;

import android.graphics.Color;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.TextView;
import android.widget.EditText;
import android.text.InputType;

public class MainActivity extends AppCompatActivity {

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

    final Button btCopper1 = findViewById(R.id.copperBt1);
    final Button btCopper2 = findViewById(R.id.copperBt2);
    final Button btSilver1 = findViewById(R.id.silverBt1);
    final Button btSilver2 = findViewById(R.id.silverBt2);
    final Button btGold1 = findViewById(R.id.goldBt1);
    final Button btGold2 = findViewById(R.id.goldBt2);
    final Button btCalculate = findViewById(R.id.calculateBt);
    final EditText editText = findViewById(R.id.editTxt);
    final TextView costTextView = findViewById(R.id.textViewCost);

    btCopper1.setOnClickListener(new View.OnClickListener()
    {
        public void onClick(View v) {

            btCopper1.setTextColor(Color.parseColor("#a0522d"));

        }
    });

    btCopper2.setOnClickListener(new View.OnClickListener()
    {
        public void onClick(View v) {

            btCopper2.setTextColor(Color.parseColor("#a0522d"));
        }
    });

    btSilver1.setOnClickListener(new View.OnClickListener()
    {
        public void onClick(View v) {

            btSilver1.setTextColor(Color.parseColor("#8b8989"));

        }
    });

    btSilver2.setOnClickListener(new View.OnClickListener()
    {
        public void onClick(View v) {

            btSilver2.setTextColor(Color.parseColor("#8b8989"));

        }
    });

    btGold1.setOnClickListener(new View.OnClickListener()
    {
        public void onClick(View v) {

            btGold1.setTextColor(Color.parseColor("#daa520"));

        }
    });

    btGold2.setOnClickListener(new View.OnClickListener()
    {
        public void onClick(View v) {

            btGold2.setTextColor(Color.parseColor("#daa520"));

        }
    });

    btCalculate.setOnClickListener(new View.OnClickListener()
    {
        public void onClick(View v) {

            int num = Integer.parseInt(editText.getText().toString());




            costTextView.setText(editText.getText());


        }
    });


}

}

If 语句可以完成工作,但使用 OOP 会使代码更高效,并且更容易在未来添加更多货币。

您可以做的是创建一个名为 Currency 的 class,然后您将初始化一个名为 convert_to(Currency c) 的方法。要使此方法起作用,您可以初始化一个字典属性,该属性会将所有其他货币实例存储为键并显示它们各自的汇率。您还可以添加一个名为 add(Currency c, float exchange_rate) 的方法来更新您的货币字典。调用 convert 方法时,只需输入要转换的货币,该方法就可以获取存储在货币字典中的汇率。您显然可以添加更多方法来管理您的信息。