新建MainActivity,放置两个EditText控件、一个Button控件,输入两个整数;单击按钮跳转到CalcActivity,根据输入的两个整数,计算两者因子中乘积最大的,利用进度条控件模拟计算过程,将结果返回给MainActivity。
时间: 2024-09-24 22:13:39 浏览: 33
新建一个名为`MainActivity`的Android活动,首先需要在布局XML文件中设计界面。你可以添加下面的组件:
1. **两个EditText控件**: 分别用于用户输入两个整数,例如 `editText1` 和 `editText2`。
```xml
<EditText
android:id="@+id/editText1"
android:hint="请输入第一个整数" />
<EditText
android:id="@+id/editText2"
android:hint="请输入第二个整数" />
```
2. **一个Button控件**: 用户点击这个按钮启动计算,比如 `buttonCalculate`。
```xml
<Button
android:id="@+id/buttonCalculate"
android:text="计算最大因子乘积"
android:onClick="startCalculation" />
```
3. **一个ProgressBar控件**: 显示计算过程,`progressBar` 或 `android:indeterminate="true"` 可以使其显示为加载状态。
```xml
<ProgressBar
android:id="@+id/progressBar"
android:visibility="gone" /> <!-- 初始隐藏 -->
```
然后在`MainActivity`的Java或Kotlin代码中,你需要实现以下几个功能:
- 获取用户输入的整数并存储。
- 实现 `startCalculation` 方法,当点击按钮时,获取输入值,显示进度条,开始异步计算。
- 完成计算后,更新UI显示结果,并隐藏进度条。
```java (假设是Java)
// ... MainActivity.java
public class MainActivity extends AppCompatActivity {
private EditText editText1, editText2;
private Button buttonCalculate;
private ProgressBar progressBar;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
// 初始化控件
editText1 = findViewById(R.id.editText1);
editText2 = findViewById(R.id.editText2);
buttonCalculate = findViewById(R.id.buttonCalculate);
progressBar = findViewById(R.id.progressBar);
}
public void startCalculation(View view) {
int num1 = Integer.parseInt(editText1.getText().toString());
int num2 = Integer.parseInt(editText2.getText().toString());
// 隐藏初始的输入文本框
editText1.setVisibility(View.GONE);
editText2.setVisibility(View.GONE);
// 展示进度条
progressBar.setVisibility(View.VISIBLE);
// 开始计算...
new Thread(() -> {
// 模拟计算过程
// 计算因子,找到最大乘积等...
int maxProduct = calculateMaxFactorProduct(num1, num2);
// 更新UI
runOnUiThread(() -> {
progressBar.setVisibility(View.GONE); // 隐藏进度条
Toast.makeText(this, "最大因子乘积为: " + maxProduct, Toast.LENGTH_SHORT).show();
});
}).start();
}
// 省略具体的计算方法
}
```