设计并实现一个Android应用项目,具体要求如下: 7.在第一个Activity中要求用户分别录入语文、数学和英语三门课程的成绩,单击“确定”按钮之后跳转到第二个Activity; 8.在第二个Activity计算三门课程的平均成绩,按下“返回”按钮之后将平均成绩返回给第一个Activity,并在第一个Activity中显示平均成绩; 3. 在模拟器上或手机上调试运行该程序。
时间: 2023-12-06 20:39:31 浏览: 212
一步一步图示开发第一个Android项目并运行.doc
这个项目需要用到Android Studio进行开发,具体实现步骤如下:
1. 创建一个新的Android项目,选择Empty Activity作为模板;
2. 在第一个Activity的布局文件中添加三个EditText分别用于输入语文、数学和英语成绩,并添加一个Button用于提交成绩;
3. 在第二个Activity的布局文件中添加一个TextView用于显示平均成绩,并添加一个Button用于返回第一个Activity;
4. 在第一个Activity的Java代码中获取到三门课程的成绩,并在点击提交按钮时启动第二个Activity并将成绩数据传递给第二个Activity;
5. 在第二个Activity的Java代码中计算三门课程的平均成绩,并将平均成绩返回给第一个Activity;
6. 在第一个Activity的Java代码中接收平均成绩,并将其显示在TextView上。
下面是具体的实现代码:
MainActivity.java
```java
public class MainActivity extends AppCompatActivity {
private EditText etChinese, etMath, etEnglish;
private Button btnSubmit;
private static final int REQUEST_CODE_CALCULATE = 1;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
etChinese = findViewById(R.id.et_chinese);
etMath = findViewById(R.id.et_math);
etEnglish = findViewById(R.id.et_english);
btnSubmit = findViewById(R.id.btn_submit);
btnSubmit.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
String chineseScoreStr = etChinese.getText().toString();
String mathScoreStr = etMath.getText().toString();
String englishScoreStr = etEnglish.getText().toString();
if (!TextUtils.isEmpty(chineseScoreStr) && !TextUtils.isEmpty(mathScoreStr) && !TextUtils.isEmpty(englishScoreStr)) {
double chineseScore = Double.parseDouble(chineseScoreStr);
double mathScore = Double.parseDouble(mathScoreStr);
double englishScore = Double.parseDouble(englishScoreStr);
Intent intent = new Intent(MainActivity.this, CalculateActivity.class);
intent.putExtra("chinese_score", chineseScore);
intent.putExtra("math_score", mathScore);
intent.putExtra("english_score", englishScore);
startActivityForResult(intent, REQUEST_CODE_CALCULATE);
} else {
Toast.makeText(MainActivity.this, "请填写完整的成绩", Toast.LENGTH_SHORT).show();
}
}
});
}
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
if (requestCode == REQUEST_CODE_CALCULATE && resultCode == RESULT_OK) {
double averageScore = data.getDoubleExtra("average_score", 0);
DecimalFormat decimalFormat = new DecimalFormat("#.##");
String averageScoreStr = decimalFormat.format(averageScore);
Toast.makeText(MainActivity.this, "平均成绩为:" + averageScoreStr, Toast.LENGTH_SHORT).show();
TextView tvAverageScore = findViewById(R.id.tv_average_score);
tvAverageScore.setText(averageScoreStr);
}
}
}
```
CalculateActivity.java
```java
public class CalculateActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_calculate);
Intent intent = getIntent();
double chineseScore = intent.getDoubleExtra("chinese_score", 0);
double mathScore = intent.getDoubleExtra("math_score", 0);
double englishScore = intent.getDoubleExtra("english_score", 0);
double averageScore = (chineseScore + mathScore + englishScore) / 3;
Intent resultIntent = new Intent();
resultIntent.putExtra("average_score", averageScore);
setResult(RESULT_OK, resultIntent);
Button btnReturn = findViewById(R.id.btn_return);
btnReturn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
finish();
}
});
}
}
```
activity_main.xml
```xml
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:orientation="vertical"
android:padding="16dp"
android:gravity="center"
android:layout_height="match_parent"
tools:context=".MainActivity">
<TextView
android:text="请输入三门课程的成绩"
android:textSize="20sp"
android:layout_width="wrap_content"
android:layout_height="wrap_content" />
<EditText
android:id="@+id/et_chinese"
android:hint="语文成绩"
android:inputType="numberDecimal"
android:layout_marginTop="16dp"
android:layout_width="match_parent"
android:layout_height="wrap_content" />
<EditText
android:id="@+id/et_math"
android:hint="数学成绩"
android:inputType="numberDecimal"
android:layout_marginTop="8dp"
android:layout_width="match_parent"
android:layout_height="wrap_content" />
<EditText
android:id="@+id/et_english"
android:hint="英语成绩"
android:inputType="numberDecimal"
android:layout_marginTop="8dp"
android:layout_width="match_parent"
android:layout_height="wrap_content" />
<Button
android:id="@+id/btn_submit"
android:text="确定"
android:layout_marginTop="16dp"
android:layout_width="wrap_content"
android:layout_height="wrap_content" />
<TextView
android:id="@+id/tv_average_score"
android:textSize="20sp"
android:layout_marginTop="16dp"
android:layout_width="wrap_content"
android:layout_height="wrap_content" />
</LinearLayout>
```
activity_calculate.xml
```xml
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:padding="16dp"
android:gravity="center"
android:layout_width="match_parent"
android:layout_height="match_parent">
<TextView
android:text="正在计算平均成绩,请稍候..."
android:textSize="20sp"
android:layout_width="wrap_content"
android:layout_height="wrap_content" />
<Button
android:id="@+id/btn_return"
android:text="返回"
android:layout_marginTop="16dp"
android:layout_width="wrap_content"
android:layout_height="wrap_content" />
</LinearLayout>
```
在Android Studio中点击运行按钮,选择一个模拟器或连接一个Android手机进行调试运行即可。
阅读全文