栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

Android开发:Activity生命周期、页面跳转和传值

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Android开发:Activity生命周期、页面跳转和传值


一、Activity生命周期



Activity的生命周期主要有:onCreate、onStart、onResume、onPause、onStop、onDestroy


public class Main1 extends AppCompatActivity {

     @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main1);
        Log.d("Activity的生命周期","Activity is onCreate……");
    }

    @Override
    protected void onStart() {
        super.onStart();
        Log.d("Activity的生命周期","Activity is onStart……");
    }
    @Override
    protected void onResume() {
        super.onResume();
        Log.d("Activity的生命周期","Activity is onResume……");
    }
    @Override
    protected void onPause() {
        super.onPause();
        Log.d("Activity的生命周期","Activity is onPause……");
    }

    @Override
    protected void onStop() {
        super.onStop();
        Log.d("Activity的生命周期","Activity is onStop……");
    }

    @Override
    protected void onDestroy() {
        super.onDestroy();
        Log.d("Activity的生命周期","Activity is onDestroy……");
    }

    @Override
    public void finishAffinity() {
        super.finishAffinity();
    }
}


二、页面跳转和传值



页面跳转和传值主要用到:onCreate、Intent、putExtra、startActivityForResult、getStringExtra(传字符串就用这个,其他类型根据传递的类型而定)


主要代码:
传递的(这里是Main1.java)

//传值
Intent intent1 = new Intent(Main1.this, Main2.class);
intent1.putExtra("dataName","这个是第一个页面传递的数据");

//添加按键跳转到第二个页面Main2.java
button1=findViewById(R.id.button1);
button1.setOnClickListener(new View.OnClickListener() {
    @Override
    public void onClick(View view) {
        Intent intent2 = new Intent(Main1.this,Main2.class);        //页面跳转
        startActivity(intent1);		//激活传值
        startActivity(intent2);		//激活跳转
        startActivityForResult(intent1,1);      //获取重第二个页面Main2.java传回来的参数,1是返回的代码
        finish();       //结束当前Activity
    }
});

接收的(这里是Main2.java)

  // 获取到意图对象
  Intent intent1=getIntent();
  // 获取到传递过来的数据
  String str = intent1.getStringExtra("dataName");
 //将获取的数据显示在TextView上
 TextView dataTextView = (TextView) findViewById(R.id.textView2);
 dataTextView.setText(str);

  button2=findViewById(R.id.button2);
  button2.setOnClickListener(new View.OnClickListener() {
      @Override
      public void onClick(View view) {
          Intent intent2 = new Intent(Main2.this,Main1.class);		//返回(跳转)到Main1.java
          startActivity(intent1);		//激活接收传值
          startActivity(intent2);		//激活返回
          finish();       //结束当前Activity
      }
  });


运行效果

Main1.java完整代码

package com.pkg.myadapter;

import androidx.annotation.Nullable;
import androidx.appcompat.app.AppCompatActivity;

import android.content.Intent;
import android.os.Bundle;
import android.util.Log;
import android.view.View;
import android.widget.Button;

public class Main1 extends AppCompatActivity {
    private Button button1;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main1);
        Log.d("Activity的生命周期","Activity is onCreate……");

        //传值
        Intent intent1 = new Intent(Main1.this, Main2.class);
        intent1.putExtra("dataName","这个是第一个页面传递的数据");

        //添加按键跳转到第二个页面Main2.java
        button1=findViewById(R.id.button1);
        button1.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                Intent intent2 = new Intent(Main1.this,Main2.class);        //页面跳转
                startActivity(intent1);
                startActivity(intent2);
                startActivityForResult(intent1,1);      //获取重第二个页面Main2.java传回来的参数
                finish();       //结束当前Activity
            }
        });
    }

    @Override
    protected void onActivityResult(int requestCode, int resultCode, @Nullable Intent data) {
        super.onActivityResult(requestCode, resultCode, data);
    }

    @Override
    protected void onStart() {
        super.onStart();
        Log.d("Activity的生命周期","Activity is onStart……");
    }
    @Override
    protected void onResume() {
        super.onResume();
        Log.d("Activity的生命周期","Activity is onResume……");
    }
    @Override
    protected void onPause() {
        super.onPause();
        Log.d("Activity的生命周期","Activity is onPause……");
    }

    @Override
    protected void onStop() {
        super.onStop();
        Log.d("Activity的生命周期","Activity is onStop……");
    }

    @Override
    protected void onDestroy() {
        super.onDestroy();
        Log.d("Activity的生命周期","Activity is onDestroy……");
    }

    @Override
    public void finishAffinity() {
        super.finishAffinity();
    }
}

Main2.java完整代码

package com.pkg.myadapter;

import androidx.appcompat.app.AppCompatActivity;

import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.TextView;

public class Main2 extends AppCompatActivity {

    private Button button2;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main2);

        // 获取到意图对象
        Intent intent1=getIntent();
        // 获取到传递过来的数据
        String str = intent1.getStringExtra("dataName");
       //将获取的数据显示在TextView上
       TextView dataTextView = (TextView) findViewById(R.id.textView2);
       dataTextView.setText(str);

        button2=findViewById(R.id.button2);
        button2.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                Intent intent2 = new Intent(Main2.this,Main1.class);
                startActivity(intent1);
                startActivity(intent2);
                finish();       //结束当前Activity
            }
        });
    }

}

还有TextView和Button的XML文件就简单配置一下即可。

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/786107.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号