Activity之间传递参数(一)

时间:2021-10-14 23:33:03

-------siwuxie095

传递简单数据

(1)首先创建一个项目:SendArgs

Activity之间传递参数(一)

(2)选择API:21 Android 5.0

Activity之间传递参数(一)

(3)选择
Empty Activity

Activity之间传递参数(一)

(4)默认

Activity之间传递参数(一)

(5)完成,一览:

Activity之间传递参数(一)

(6)先进
activity_main.xml 里的 Text 手动添加一个Button,

删掉自带的TextView,如下:

<?xml
version="1.0"
encoding="utf-8"?>

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"

xmlns:tools="http://schemas.android.com/tools"

android:id="@+id/activity_main"

android:layout_width="match_parent"

android:layout_height="match_parent"

android:paddingBottom="@dimen/activity_vertical_margin"

android:paddingLeft="@dimen/activity_horizontal_margin"

android:paddingRight="@dimen/activity_horizontal_margin"

android:paddingTop="@dimen/activity_vertical_margin"

tools:context="com.siwuxie095.sendargs.MainActivity">

<Button

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:id="@+id/btnStartAty"

android:text="启动另一个Activity"/>

</RelativeLayout>

(7)new 一个
Empty Activity:TheAty

Activity之间传递参数(一)

Activity之间传递参数(一)

Activity之间传递参数(一)

(8)给activity_the_aty.xml添加一个TextView,如下:

<?xml
version="1.0"
encoding="utf-8"?>

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"

xmlns:tools="http://schemas.android.com/tools"

android:id="@+id/activity_the_aty"

android:layout_width="match_parent"

android:layout_height="match_parent"

android:paddingBottom="@dimen/activity_vertical_margin"

android:paddingLeft="@dimen/activity_horizontal_margin"

android:paddingRight="@dimen/activity_horizontal_margin"

android:paddingTop="@dimen/activity_vertical_margin"

tools:context="com.siwuxie095.sendargs.TheAty">

<TextView

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:text="Hello World"

android:id="@+id/tv"/>

</RelativeLayout>

(9)在MainActivity.java 中添加:findViewById(R.id.btnStartAty)

和setOnClickListener(new OnClick…),会自动生成代码,接着在onClick()

函数里创建一个Intent,通过 Intent 的 putExtra() 传参,最后通过 startActivity()

把Intent对象传入:

package com.siwuxie095.sendargs;

import android.content.Intent;

import android.support.v7.app.AppCompatActivity;

import android.os.Bundle;

import android.view.View;

public class MainActivity extends AppCompatActivity {

@Override

protected
void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.activity_main);

findViewById(R.id.btnStartAty).setOnClickListener(new View.OnClickListener() {

@Override

public
void onClick(View v) {

//创建一个new Intent()实例,传入Context和Class类型的参数

//对应MainActivity.this 和
被启动的Activity的类定义 TheAty.class

Intent i = new Intent(MainActivity.this,TheAty.class);

//通过Intent对象,调用putExtra()方法,传参

//这里传入String和String类型的参数,实际上就是键值对

i.putExtra("data","你好
我是传递的参数");

//传入i

startActivity(i);

}

});

}

}

(10)在 TheAty.java 中获取数据,如下:

package com.siwuxie095.sendargs;

import android.content.Intent;

import android.support.v7.app.AppCompatActivity;

import android.os.Bundle;

import android.widget.TextView;

public class TheAty extends AppCompatActivity {

private TextView tv;

@Override

protected
void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.activity_the_aty);

//TheAty是通过MainActivity中的Intent启动,直接通过getIntent()方法

//获取与这个Activity相关的Intent

Intent i=getIntent();

//要访问TextView,先在上面声明

//findViewById()的返回值在编译时只能查看到类型是View,而事实上是TextView类型

//需要强制类型转换

tv= (TextView) findViewById(R.id.tv);

//调用setText()方法设置字符串,这里字符串通过Intent获取

tv.setText(i.getStringExtra("data"));

}

}

(11)发送到手机,运行一览:

Activity之间传递参数(一)

Activity之间传递参数(一)

【made by siwuxie095】