我可以使用 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 方法时,只需输入要转换的货币,该方法就可以获取存储在货币字典中的汇率。您显然可以添加更多方法来管理您的信息。
我正在尝试制作一个具有简单货币系统的应用程序,该系统使用价值不同的铜、银和金。我希望该应用程序能够将一种货币转换为另一种货币。用户首先输入他们希望转换的金额。然后他们 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 方法时,只需输入要转换的货币,该方法就可以获取存储在货币字典中的汇率。您显然可以添加更多方法来管理您的信息。