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

  • Post author:
  • Post category:其他




一、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
      }
  });



运行效果

a898235ff3073240cfd.png)


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文件就简单配置一下即可。



版权声明:本文为m0_47114547原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。