zoukankan      html  css  js  c++  java
  • 008 Android activity实现多个界面的相互跳转(主要利用Intent)

    1.activity介绍

    一个activity就把他理解成一个页面

    activity永远是全屏的。

    2.新建activity流程

    如图所示在com.lucky.test06的目录下,右击new--->Activity--->Empty Activity,会出现如下,点击finish即可。

    3.页面跳转(利用Intent实现,页面跳转传值)

    Intent称为意图,是Android各大组件连接的桥梁

    案例:test06

    <1>页面1

    布局页面:

    <?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"
        android:gravity="center">
    
    
        <TextView
            android:id="@+id/tv_show1"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="TextView" />
    
        <!--android:layout_marginTop="20dp" 设置button组件顶部距离上一个组件的距离为20dp-->
        <Button
            android:id="@+id/bt_link1"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_marginTop="20dp"
            android:text="link1" />
    </LinearLayout>

    后台代码:

    package com.lucky.test06;
    
    import android.app.Activity;
    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.TextView;
    
    public class MainActivity extends AppCompatActivity {
        Button bt_link1;
        TextView tv_show1;
    
        @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_main);
            bt_link1=findViewById(R.id.bt_link1);  //在XML文件中寻找组件
            tv_show1=findViewById(R.id.tv_show1);
    
            bt_link1.setOnClickListener(new View.OnClickListener() {  //绑定按钮点击事件
                @Override
                public void onClick(View v) {
                    Intent intent=new Intent(MainActivity.this,Main2Activity.class);//参数1为跳转页面,参数2为跳转目标页
                    intent.putExtra("001","雨后观山色");  //参数1为传输数据的代号,参数2为数据内容
                    startActivityForResult(intent,0x01);//参数1为intent,参数2为请求码
    
                }
            });
        }
    
        @Override
        protected void onActivityResult(int requestCode, int resultCode, @Nullable Intent data) {  // 接收另一个页面的返回的数据
            super.onActivityResult(requestCode, resultCode, data);
            if(requestCode==0x01&&resultCode==0x02){  //判断请求码和结果码是否正确
                int i=data.getIntExtra("002",0);
                tv_show1.setText(i+"");
            }
        }
    }

    <2>页面2

     页面布局:

    <?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"
        android:gravity="center"
        tools:context=".Main2Activity">
    
        <TextView
            android:id="@+id/tv_show2"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="TextView" />
    
        <!--android:layout_marginTop="20dp" 设置button组件顶部距离上一个组件的距离为20dp-->
        <Button
            android:id="@+id/bt_link2"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_marginTop="20dp"
            android:text="link2" />
    </LinearLayout>

    后台代码:

    package com.lucky.test06;
    
    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.TextView;
    
    public class Main2Activity extends AppCompatActivity {
        TextView tv_show2;
        Button bt_link2;
    
        @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_main2);
            tv_show2=findViewById(R.id.tv_show2);
            bt_link2=findViewById(R.id.bt_link2);
            final Intent intent=getIntent(); //接收所传送过来的数据
            String data=intent.getStringExtra("001");  //参数为页面1的字符的代号
            tv_show2.setText(data);
            bt_link2.setOnClickListener(new View.OnClickListener() {  //绑定按钮点击事件
                @Override
                public void onClick(View v) {
                    intent.putExtra("002",666); //参数1为数据代号,参数2为数据内容
                    setResult(0x02,intent);   //参数1为结果码
                    finish();//退出Main2Activity页面
                }
            });
        }
    }

    效果图:

  • 相关阅读:
    文件名中含有空格读取时产生的异常
    R 常用清洗函数汇总
    Fluid 0.4 新版本正式发布:支持数据预热,优化小文件场景
    阿里云 Serverless 再升级,从体验上拉开差距
    Dubbo-go 源码笔记(二)客户端调用过程
    高质量的缺陷分析:让自己少写 bug
    微服务框架 Go-Micro 集成 Nacos 实战之服务注册与发现
    OpenYurt 深度解读:如何构建 Kubernetes 原生云边高效协同网络?
    在大规模 Kubernetes 集群上实现高 SLO 的方法
    双十一购物节,Nacos 1.4.0 + Go SDK 1.0.1发布
  • 原文地址:https://www.cnblogs.com/luckyplj/p/10467248.html
Copyright © 2011-2022 走看看