Android Activity之间跳转和参数传递

创建Activity

1,新创建的activity需要继承Activity类,并重写onCreate方法

package com.example.testsend;

import android.app.Activity;
import android.os.Bundle;

public class MainActivity extends Activity{
    
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.newtest);     
    }
    
}

2,创建好这个新的Activity之后,需要将这个新的Activity配置到AndroidManifest.xml中

<activity android:name="com.example.testsend.MainActivity">
</activity>

Activity之间通信

如果我们要通过一个Activity来启动另一个Activity,可以使用startActivity(Intent intent)方法来传入一个Intent对象

Intent intent = new Intent(this, MainActivity2.class);
startActivity(intent);

//or 

Intent intent = new Intent();
intent.setClass(MainActivity.this, MainActivity2.class);
startActivity(intent);

如果通过点击MainActivity上的一个button来打开MainActivity2

设置一个button元素

<Button 
        android:id="@+id/btn"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="button for opening"
        android:onClick="open"
/>

在MainActivity中设置该open方法

public void open(view v){
     Intent intent = new Intent(MainActivity.this, MainActivity2.class);
     startActivity(intent);
}

打开新的Activity并传递参数

在MainActivity上传递参数

public void open(View v){
    Intent intent =new Intent(MainActivity.this,MainActivity2.class);
    
    //用Bundle携带数据
    Bundle bundle=new Bundle();

    //传递name参数为wayne
    bundle.putString("name", " wayne");

    intent.putExtras(bundle);
    
    startActivity(intent);        
}

在MainActivity2上接收参数

protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.newtest);   
        
        //新页面接收数据
        Bundle bundle = this.getIntent().getExtras();

        //接收name值
        String name = bundle.getString("name");

        Log.i("获取到的name值为",name);     
}
CrazyQA
原文地址:https://www.cnblogs.com/wayne-zhang/p/8297515.html