Android 输入数字后可以实现“公制平方千米”到“英制平方公里”的计算的代码
时间: 2023-10-08 14:10:16 浏览: 70
好的,这是一个简单的Android应用代码,用于实现“公制平方千米”到“英制平方公里”的计算。在这个应用中,用户可以选择输入的单位(“公制平方千米”或“英制平方公里”),然后输入数字,最后选择输出的单位,应用会计算并显示结果。
```java
import android.os.Bundle;
import android.view.View;
import android.widget.ArrayAdapter;
import android.widget.EditText;
import android.widget.Spinner;
import android.widget.TextView;
import androidx.appcompat.app.AppCompatActivity;
public class MainActivity extends AppCompatActivity {
private Spinner inputUnitSpinner;
private Spinner outputUnitSpinner;
private EditText inputEditText;
private TextView resultTextView;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
// 初始化控件
inputUnitSpinner = findViewById(R.id.input_unit_spinner);
outputUnitSpinner = findViewById(R.id.output_unit_spinner);
inputEditText = findViewById(R.id.input_edit_text);
resultTextView = findViewById(R.id.result_text_view);
// 给输入单位下拉框添加选项
ArrayAdapter<CharSequence> inputUnitAdapter = ArrayAdapter.createFromResource(this,
R.array.input_unit_array, android.R.layout.simple_spinner_item);
inputUnitAdapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
inputUnitSpinner.setAdapter(inputUnitAdapter);
// 给输出单位下拉框添加选项
ArrayAdapter<CharSequence> outputUnitAdapter = ArrayAdapter.createFromResource(this,
R.array.output_unit_array, android.R.layout.simple_spinner_item);
outputUnitAdapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
outputUnitSpinner.setAdapter(outputUnitAdapter);
}
/**
* 点击“计算”按钮时触发
*/
public void calculate(View view) {
// 获取输入数字和单位
double inputNumber = Double.parseDouble(inputEditText.getText().toString());
String inputUnit = inputUnitSpinner.getSelectedItem().toString();
// 将输入单位转换为平方米
double inputSquareMeters = 0;
if (inputUnit.equals(getString(R.string.input_unit_square_kilometers))) {
inputSquareMeters = inputNumber * 1000000;
} else if (inputUnit.equals(getString(R.string.input_unit_square_miles))) {
inputSquareMeters = inputNumber * 2589988.11;
}
// 将平方米转换为输出单位
double outputNumber = 0;
String outputUnit = outputUnitSpinner.getSelectedItem().toString();
if (outputUnit.equals(getString(R.string.output_unit_square_kilometers))) {
outputNumber = inputSquareMeters / 1000000;
} else if (outputUnit.equals(getString(R.string.output_unit_square_miles))) {
outputNumber = inputSquareMeters / 2589988.11;
}
// 显示结果
resultTextView.setText(String.format("%.2f", outputNumber));
}
}
```
请注意,上述代码只是一个示例,您需要根据实际情况进行修改,比如修改布局文件、字符串资源和下拉框选项等。此外,还需要处理一些异常情况,例如输入非数字字符或选择不合适的单位等。
相关推荐
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)