zoukankan      html  css  js  c++  java
  • 027 Android 多个界面(Activity)

    1.介绍

    2.相关属性

    (1)启动Activity

    (2)Intent介绍

    (3)关闭Activity

    3.多个页面之间传递数据(页面1向页面2传递数据,单向传递数据)

    (1)相关属性

    注意:data为str的代号

    (2)xml文件

    第一个界面

    <?xml version="1.0" encoding="utf-8"?>
    <LinearLayout 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"
        android:orientation="vertical"
        tools:context=".MainActivity">
    
        <TextView
            android:id="@+id/tv_weight"
            android:layout_gravity="center"
            android:layout_width="wrap_content"
            android:layout_height="50dp"
            android:text="这是标准体重计算界面"
            android:textSize="30dp" />
    
        <LinearLayout
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:orientation="horizontal"
            android:gravity="center">
    
            <TextView
                android:id="@+id/tv_gender"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:text="请选择性别" />
    
            <RadioGroup
                android:layout_width="wrap_content"
                android:layout_height="match_parent"
                android:orientation="horizontal">
    
                <RadioButton
                    android:id="@+id/radioButton"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:text="男" />
    
                <RadioButton
                    android:id="@+id/radioButton2"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:text="女" />
            </RadioGroup>
    
    
        </LinearLayout>
    
        <LinearLayout
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:orientation="horizontal"
            android:gravity="center">
    
            <TextView
                android:id="@+id/tv_userheight"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:text="请输入您的身高" />
    
            <EditText
                android:id="@+id/et_userheight"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:ems="10"
                android:inputType="textPersonName" />
        </LinearLayout>
    
        <LinearLayout
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:orientation="horizontal"
            android:gravity="center">
    
            <Button
                android:id="@+id/bt_calculate"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:text="计算" />
        </LinearLayout>
    
    </LinearLayout>

    第二个界面

    <?xml version="1.0" encoding="utf-8"?>
    <LinearLayout 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"
        android:orientation="vertical"
        tools:context=".MainActivity">
    
    
        <TextView
            android:id="@+id/textView"
            android:layout_gravity="center"
            android:layout_width="wrap_content"
            android:layout_height="50dp"
            android:text="这是第二个界面"
            android:textSize="30dp" />
    
        <Button
            android:id="@+id/bt_goback"
            android:layout_gravity="center"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="返回" />
    
        <EditText
            android:id="@+id/et_message"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:ems="10"
            android:inputType="textPersonName"
            android:text="Name" />
    
        <EditText
            android:id="@+id/et_weightValue"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:ems="10"
            android:inputType="textPersonName"
            android:text="Name" />
    </LinearLayout>

    (3)java后台代码

    界面1

    package com.lucky.test31activity;
    
    import android.content.Intent;
    import android.support.v7.app.AppCompatActivity;
    import android.os.Bundle;
    import android.view.View;
    import android.widget.Button;
    import android.widget.EditText;
    import android.widget.RadioButton;
    
    public class MainActivity extends AppCompatActivity {
        Button bt_calculate;
        EditText et_height;
        RadioButton radioButton;
        String gender;
    
        @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_main);
            bt_calculate=findViewById(R.id.bt_calculate);
            et_height=findViewById(R.id.et_userheight);
            radioButton=findViewById(R.id.radioButton);
    
            bt_calculate.setOnClickListener(new View.OnClickListener() {
                @Override
                public void onClick(View v) {
                    //实现页面之间的跳转
                    Intent intent=new Intent(MainActivity.this,SecondActivity.class);
                    //若页面之间要传递数据,可以用putExtra()方法,若不需要传递数据则下面两句可以不写
                    //toString()一定不能少
                    if(radioButton.isChecked()){
                        gender="男";
                    }else {
                        gender="女";
                    }
                    intent.putExtra("003",gender);
                    intent.putExtra("004",Integer.parseInt(et_height.getText().toString()));
                    startActivity(intent); //进行页面跳转
                }
            });
        }
    }

    界面2

    package com.lucky.test31activity;
    
    import android.content.Intent;
    import android.support.v7.app.AppCompatActivity;
    import android.os.Bundle;
    import android.view.View;
    import android.widget.Button;
    import android.widget.EditText;
    
    public class SecondActivity extends AppCompatActivity {
        Button button1;
        EditText et_message;
        EditText et_userweight;
        int userheight;
        double userweight;
        String gender;
    
    
        @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_second);
            button1=findViewById(R.id.bt_goback);
            et_message=findViewById(R.id.et_message);
            et_userweight=findViewById(R.id.et_weightValue);
            Intent intent=getIntent();//获取Intent
            String name=intent.getStringExtra("001");
            String pwd=intent.getStringExtra("002");
            gender=intent.getStringExtra("003");
            userheight=intent.getIntExtra("004",0);
            if(gender.equals("男")){
                userweight=(userheight-80)*0.7;
            }else {
                userweight=(userheight-70)*0.6;
    
            }
            et_message.setText("用户名为:"+name+"
    密码为:"+pwd);
            et_userweight.setText("您的体重为:"+userweight);
    
            button1.setOnClickListener(new View.OnClickListener() {
                @Override
                public void onClick(View v) {
                    finish();//关闭页面
                }
            });
        }
    }

    4.页面之间传递数据(页面1与页面2双向传递数据)

    (1)介绍

    (2) java 后台代码

    主界面

    package com.lucky.test32activity2;
    
    import android.content.Intent;
    import android.support.annotation.Nullable;
    import android.support.v7.app.AppCompatActivity;
    import android.os.Bundle;
    import android.view.View;
    import android.widget.Button;
    import android.widget.EditText;
    
    public class MainActivity extends AppCompatActivity {
        EditText page1output;
        EditText frompage2;
        Button button1;
        @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_main);
            page1output=findViewById(R.id.editText_page1output);
            frompage2=findViewById(R.id.editText_frompage2);
            button1=findViewById(R.id.button_page1);
            button1.setOnClickListener(new View.OnClickListener() {
                @Override
                public void onClick(View v) {
                    Intent intent=new Intent(MainActivity.this,page2Activity.class);//实例化intent
                    intent.putExtra("001",page1output.getText().toString()); //设置所传递的数据
                    startActivityForResult(intent,0x01); //参数2为请求码
                }
            });
    
        }
    
        @Override
        protected void onActivityResult(int requestCode, int resultCode, @Nullable Intent data) {
            //判断请求码与结果码是否一致
            if(requestCode==0x01&&resultCode==0x02){
                frompage2.setText(data.getStringExtra("002"));
            }
        }
    }

    第二界面

    package com.lucky.test32activity2;
    
    import android.content.Intent;
    import android.support.v7.app.AppCompatActivity;
    import android.os.Bundle;
    import android.view.View;
    import android.widget.Button;
    import android.widget.EditText;
    
    public class page2Activity extends AppCompatActivity {
    
        EditText page1input;
        EditText page2return;
        Button button2;
        @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_page2);
            page1input=findViewById(R.id.editText_page1input);
            page2return=findViewById(R.id.editText_page2return);
            button2=findViewById(R.id.button_page2);
            final Intent intent=getIntent();
            page1input.setText(intent.getStringExtra("001"));
            button2.setOnClickListener(new View.OnClickListener() {
                @Override
                public void onClick(View v) {
                    Intent intent1=new Intent(); //实例化intent
                    intent1.putExtra("002",page2return.getText().toString()); //设置数据,toString()不能省略
                    setResult(0x02,intent1); //从第二界面返回第一界面
                    finish(); //关闭页面
                }
            });
    
        }
    }

    5.效果图

    动态1对应工程名:test31,动态2对应工程名:test32

          

  • 相关阅读:
    mysql 视图
    CSS 上下居中和最低高度语法
    escape()、encodeURI()、encodeURIComponent()区别详解
    YII事件EVENT示例
    linux history命令优化
    mysql 之full join
    redis学习之数据类型
    <canvas>设置宽高遇到的问题
    关于块级元素撑满整个浏览器窗口
    jquery中bind()绑定多个事件
  • 原文地址:https://www.cnblogs.com/luckyplj/p/10513567.html
Copyright © 2011-2022 走看看