Android实验七——使用Intent在Activity间传输数据

一、实验要求和目的

  1. 理解Activity组件的功能与作用;
  2. 掌握使用Intent在多个Activity组件间传输数据的方法;
  3. 掌握在AndroidManifest.xml中配置Activity组件的方法。

二、实验环境

  1. 部署有Android Studio和Android SDK的主机;
  2. 建议在机房的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>

 

posted @ 2022-12-01 20:46  拾一贰叁  阅读(242)  评论(0编辑  收藏  举报