展会信息港展会大全

使用Intent实现Activity之间传值与跳转
来源:互联网   发布日期:2016-01-14 09:17:31   浏览:2717次  

导读:在一个Android的应用程序中,很少只存在一个Activity,一般都有多个Activity,如何在多个Activity之间进行跳转和传值呢?我们可以通过 Intent 对象来实现上面所述的功能。本例通过在FirstActivity中实现两个数......

在一个Android的应用程序中,很少只存在一个Activity,一般都有多个Activity,如何在多个Activity之间进行跳转和传值呢?我们可以通过 Intent 对象来实现上面所述的功能。本例通过在FirstActivity中实现两个数进行相加,把相加的结果值通过Intent把值传递到 SecondActivity中。

我们新建一个Android的工程,有两个Activity,分别为FirstActivity 和 SecondActivity ,同时在资源文件下的 res/layout 目录下也有两个布局文件,分别为 main.xml【对应FirstActivity】和secondlayout.xml【对应SecondActivity】,目录的结构图如下:

在 main.xml 布局文件中添加两个EditText控件,一个TextView控件,一个Button按钮,代码如下:

01

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

02

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

03

android:orientation="vertical"

04

android:layout_width="fill_parent"

05

android:layout_height="fill_parent">

06

<EditText

07

android:id="@+id/firstNum"

08

android:layout_width="fill_parent"

09

android:layout_height="wrap_content"/>

10

<TextView

11

android:layout_width="fill_parent"

12

android:layout_height="wrap_content"

13

android:text="加"

14

android:textSize="20sp"

15

/>

16

<EditText

17

android:id="@+id/secondNum"

18

android:layout_width="fill_parent"

19

android:layout_height="wrap_content"/>

20

<Button

21

android:id="@+id/btnCalc"

22

android:layout_width="fill_parent"

23

android:layout_height="wrap_content"

24

android:text="计算结果"/>

25

</LinearLayout>

在secondlayout.xml布局文件中,添加一个EditText控件来显示从FirstActivity中传过来的值。代码如下:

01

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

02

<LinearLayout

03

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

04

android:layout_width="fill_parent"

05

android:layout_height="fill_parent">

06

<EditText

07

android:id="@+id/result"

08

android:layout_width="fill_parent"

09

android:layout_height="wrap_content"/>

10

</LinearLayout>

在FirstActivity中的代码如下:

01

package com.andyidea.test;

02

03

import android.app.Activity;

04

import android.content.Intent;

05

import android.os.Bundle;

06

import android.view.View;

07

import android.widget.Button;

08

import android.widget.EditText;

09

10

public class FirstActivity extends Activity {

11

12

EditText firstNum,secondNum;

13

Button calc;

14

15

@Override

16

public void onCreate(Bundle savedInstanceState) {

17

super.onCreate(savedInstanceState);

18

setContentView(R.layout.main);

19

20

firstNum = (EditText)findViewById(R.id.firstNum);

21

secondNum = (EditText)findViewById(R.id.secondNum);

22

calc = (Button)findViewById(R.id.btnCalc);

23

calc.setOnClickListener(new View.OnClickListener() {

24

25

@Override

26

public void onClick(View v) {

27

String num1 = firstNum.getText().toString();

28

String num2 = secondNum.getText().toString();

29

30

Intent intent = new Intent();

31

intent.putExtra("one", num1);

32

intent.putExtra("two", num2);

33

intent.setClass(FirstActivity.this, SecondActivity.class);

34

startActivity(intent);

35

}

36

});

37

}

38

}

在SecondActivity中的代码如下:

01

package com.andyidea.test;

02

03

import android.app.Activity;

04

import android.content.Intent;

05

import android.os.Bundle;

06

import android.widget.EditText;

07

08

public class SecondActivity extends Activity {

09

10

EditText result;

11

12

public void onCreate(Bundle savedInstanceState) {

13

super.onCreate(savedInstanceState);

14

setContentView(R.layout.secondlayout);

15

16

result = (EditText)findViewById(R.id.result);

17

18

Intent intent = getIntent();

19

String num1 = intent.getStringExtra("one");

20

String num2 = intent.getStringExtra("two");

21

int ret = Integer.parseInt(num1) + Integer.parseInt(num2);

22

result.setText(ret+"");

23

}

24

}

同时别忘了在Manifest配置文件中对SecondActivity进行注册。

赞助本站

人工智能实验室

相关热词: Intent Activity 传值 跳转

AiLab云推荐
展开

热门栏目HotCates

Copyright © 2010-2024 AiLab Team. 人工智能实验室 版权所有    关于我们 | 联系我们 | 广告服务 | 公司动态 | 免责声明 | 隐私条款 | 工作机会 | 展会港