一、实验要求和目的
- 理解Activity组件的功能与作用;
- 掌握使用Intent在多个Activity组件间传输数据的方法;
- 掌握在AndroidManifest.xml中配置Activity组件的方法。
二、实验环境
- 部署有Android Studio和Android SDK的主机;
- 建议在机房的HelloWorld例子上完成。
三、上机操作参考步骤
1、 完成一个体重计算器的应用程序开发。图1为该应用的首界面(即主Activity),用户可选择性别和输入身高值,点击“计算”按钮后启动图2所示的界面(即第二个Activity)。可以通过Intent携带性别、身高数据到第二个Activity,然后计算出体重并把三个数据显示到三个TextView中即可。
体重计算公式:
男性标准体重(单位:公斤)为:(身高(单位:厘米)-80)×0.7;
女性标准体重(单位:公斤)为:(身高(单位:厘米)-70)×0.6。
MainActivity.java
package com.example.test7;
import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.RadioGroup;
import android.widget.Toast;
public class MainActivity extends Activity {
private RadioGroup rg_gender;
private EditText et_height;
private Button btn_start;
private String gender="";
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
init();
choosegender();
start();
}
//初始化
private void init(){
rg_gender=findViewById(R.id.rg_gender);
et_height=findViewById(R.id.et_height);
btn_start=findViewById(R.id.btn_start);
}
//选择性别
private void choosegender(){
rg_gender.setOnCheckedChangeListener(new RadioGroup.OnCheckedChangeListener() {
@Override
public void onCheckedChanged(RadioGroup group, int checkedId) {
if (checkedId == R.id.male) {
gender="男";
} else if (checkedId == R.id.female) {
gender="女";
}
}
});
}
//点击“计算”,进入下一界面
private void start(){
btn_start.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Intent intent=new Intent(MainActivity.this,NewActivity.class);
intent.putExtra("gender",gender);//将性别信息放入intent
intent.putExtra("height",et_height.getText().toString());//获取输入框中的身高信息并放入intent
startActivity(intent);
}
});
}
}
NewActivity.java
package com.example.test7;
import androidx.appcompat.app.AppCompatActivity;
import android.content.Intent;
import android.os.Bundle;
import android.widget.TextView;
public class NewActivity extends AppCompatActivity {
private TextView tv_xingbie,tv_shengao,tv_weight;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_new);
init();
display();
}
private void init(){
tv_xingbie=findViewById(R.id.tv_xingbie);
tv_shengao=findViewById(R.id.tv_shengao);
tv_weight=findViewById(R.id.tv_weight);
}
private void display(){
Intent intent=getIntent();
String gender=intent.getStringExtra("gender");
String height=intent.getStringExtra("height");
tv_xingbie.setText("你是一位"+gender+"性");
tv_shengao.setText("你的身高是"+height+"厘米");
int tempheight=Integer.parseInt(height);
//计算标准体重
if(gender=="男"){
double weight=(tempheight-80)*0.7;
tv_weight.setText("你的标准体重是"+weight+"公斤");
}else{
double weight=(tempheight-70)*0.6;
tv_weight.setText("你的标准体重是"+weight+"公斤");
}
}
}
布局文件
activity_main.xml<?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">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Hello World!"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintLeft_toLeftOf="parent"
app:layout_constraintRight_toRightOf="parent"
app:layout_constraintTop_toTopOf="parent" />
<TextView
android:id="@+id/textView"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="计算标准体重"
android:textSize="25dp"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" />
<RadioGroup
android:id="@+id/rg_gender"
android:layout_width="162dp"
android:layout_height="62dp"
android:layout_marginStart="52dp"
android:layout_marginTop="32dp"
android:orientation="horizontal"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/textView">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="性别:" />
<RadioButton
android:id="@+id/male"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="男" />
<RadioButton
android:id="@+id/female"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="女" />
</RadioGroup>
<TextView
android:id="@+id/textView2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginStart="52dp"
android:layout_marginTop="52dp"
android:text="身高:"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/rg_gender" />
<EditText
android:id="@+id/et_height"
android:layout_width="88dp"
android:layout_height="44dp"
android:layout_marginStart="12dp"
android:layout_marginTop="36dp"
app:layout_constraintStart_toEndOf="@+id/textView2"
app:layout_constraintTop_toBottomOf="@+id/rg_gender" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginStart="8dp"
android:layout_marginTop="52dp"
android:text="cm"
app:layout_constraintStart_toEndOf="@+id/et_height"
app:layout_constraintTop_toBottomOf="@+id/rg_gender" />
<Button
android:id="@+id/btn_start"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="36dp"
android:text="计算"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintHorizontal_bias="0.498"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/et_height" />
</androidx.constraintlayout.widget.ConstraintLayout>
activity_new.xml
<?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=".NewActivity">
<TextView
android:id="@+id/tv_xingbie"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="212dp"
android:text="你是一位男性"
android:textSize="30dp"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" />
<TextView
android:id="@+id/tv_shengao"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="28dp"
android:text="你的身高是180厘米"
android:textSize="30dp"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/tv_xingbie" />
<TextView
android:id="@+id/tv_weight"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="32dp"
android:text="你的标准体重是***公斤"
android:textSize="30dp"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintHorizontal_bias="0.495"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/tv_shengao" />
</androidx.constraintlayout.widget.ConstraintLayout>