Intent之使用Extra属性在组件之间传递数据

第一步:

在MainActivity中使用Intent封装数据并传到第二个Activity

package com.example.intent;

import android.os.Bundle;
import android.app.Activity;
import android.content.Intent;
import android.view.Menu;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.EditText;

public class MainActivity extends Activity {
	private EditText m_Id_et,m_Name_et,m_Salary_et;
	private Button m_btn_ok;

	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.activity_main);
		m_Id_et = (EditText) findViewById(R.id.et_id);
		m_Name_et = (EditText) findViewById(R.id.et_name);
		m_Salary_et = (EditText) findViewById(R.id.et_salary);
		m_btn_ok = (Button) findViewById(R.id.btn_ok);

		m_btn_ok.setOnClickListener(new OnClickListener() {

			@Override
			public void onClick(View v) {
				// TODO Auto-generated method stub
				int id;String name;float salary;
				id = Integer.valueOf(m_Id_et.getText().toString());
				name = m_Name_et.getText().toString();
				salary = Float.valueOf(m_Salary_et.getText().toString());

				Intent intent = new Intent(getApplicationContext(), SecondActivity.class);
				/*
				 * 第二种方式使用Bundle封装数据
				 */
				Bundle bundle = new Bundle();
				bundle.putInt("id", id);
				bundle.putString("name", name);
				bundle.putFloat("salary",salary);
				intent.putExtras(bundle);

				//第一种方式直接使用intent.putExtra封装,这种方式本质也是操作Bundle)

				//				intent.putExtra("id", id);
				//				intent.putExtra("name", name);
				//				intent.putExtra("salary", salary);
				startActivity(intent);

			}
		});

	}
}

第二步,在第二个Activity中接受数据并显示

package com.example.intent;

import android.os.Bundle;
import android.app.Activity;
import android.content.Intent;
import android.view.Menu;
import android.widget.TextView;

public class SecondActivity extends Activity {

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

		Intent intent = getIntent();/*
		注意这里是使用getIntent()获取传过来的Intent对象,
 		Intent在激活一个Activty组件时会把intent对象也传过去
		 */
		int id = intent.getIntExtra("id", -1);
		String name = intent.getStringExtra("name");
		float salary = intent.getFloatExtra("salary", -1f);

		((TextView) findViewById(R.id.tv_id)).setText("id为"+id);
		((TextView) findViewById(R.id.tv_name)).setText("name"+name);
		((TextView) findViewById(R.id.tv_salary)).setText("salary"+salary);
	}
}
时间: 2024-10-29 19:10:53

Intent之使用Extra属性在组件之间传递数据的相关文章

vue.js 组件之间传递数据

组件是 vue.js  最强大的功能之一,而组件实例的作用域是相互独立的,这就意味着不同组件之间的数据无法相互引用.如何传递数据也成了组件的重要知识点之一.本文就这个知识点和大家一起来扒一扒,希望对大家 学习vue.js有所帮助. 组件 组件与组件之间,还存在着不同的关系.父子关系与兄弟关系(不是父子的都暂称为兄弟吧). 父子组件 父子关系即是组件 A  在它的模板中使用了组件  B ,那么组件  A  就是父组件,组件  B  就是子组件. //  注册一个子组件 Vue.component(

组件之间传递数据。 flutter中在Stepper中传递数据

A是一个有状态的组件 可以在构造函数里传递数据 myData可以是一个对象类型的引用.那么把引用传过来.便可以在组件里修改他的属性了. 如果是外部调用A组件,那么只需要在构造A组件的时候传递自定义的参数即可. A(myData:mydata); class MyData{ String name; } // ----------------- class A extends StatefulWidget { MyData myData; A({this.myData}) @override _A

vue组件父子组件之间传递数据

举个栗子: <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Title</title> <script src="../Vue.js"></script> <template id="tpl1"> <h3>我是父组件

在vue中通过使用$attrs实现组件之间的数据传递

组件之间传递数据的方式有很多种,之所以有这么多种方式,是为了满足在不同场景不同条件下的使用. 一般有三种方式: 通过 props 的方式向子组件传递(父子组件) vuex 进行状态管理 非父子组件的通信传递 Vue Event Bus,使用Vue的实例,实现事件的监听和发布,实现组件之间的传递 本文介绍的是使用$attrs的方式. 这个api是在2.4版本中添加的,那么为什么要添加这个特性呢? 看看官网是怎么解释的 包含了父作用域中不作为 prop 被识别 (且获取) 的特性绑定 (class

Vuex 组件之间的数据传递

在 Vue.js 的项目中,如果项目结构简单, 父子组件之间的数据传递可以使用  props 或者 $emit 等方式 http://www.cnblogs.com/wisewrong/p/6266038.html 但是如果是大型项目,很多时候都需要在子组件之间传递数据,使用之前的方式就不太方便.Vue 的状态管理工具 Vuex 完美的解决了这个问题. 一.安装并引入 Vuex 项目结构: 首先使用 npm 安装 Vuex cnpm install vuex -S 然后在 main.js 中引入

Vue 爬坑之路(二)—— 组件之间的数据传递

Vue 的组件作用域都是孤立的,不允许在子组件的模板内直接引用父组件的数据.必须使用特定的方法才能实现组件之间的数据传递. 首先用 vue-cli 创建一个项目,其中 App.vue 是父组件,components 文件夹下都是子组件. 一.父组件向子组件传递数据 在 Vue 中,可以使用 props 向子组件传递数据. 子组件部分: 这是 header.vue 的 HTML 部分,logo 是在 data 中定义的变量. 如果需要从父组件获取 logo 的值,就需要使用 props: ['lo

vue组件之间的数据传递

Vue 的组件作用域都是孤立的,不允许在子组件的模板内直接引用父组件的数据.必须使用特定的方法才能实现组件之间的数据传递. 首先用 vue-cli 创建一个项目,其中 App.vue 是父组件,components 文件夹下都是子组件. 一.父组件向子组件传递数据 在 Vue 中,可以使用 props 向子组件传递数据. 子组件部分: 这是 header.vue 的 HTML 部分,logo 是在 data 中定义的变量. 如果需要从父组件获取 logo 的值,就需要使用 props: ['lo

react.js从入门到精通(五)——组件之间的数据传递

一.组件之间在静态中的数据传递 从上面的代码我们可以看出,两个组件之间的数据是分离,但如果我们有某种需求,将数据从一个组件传到另一个组件中,该如何实现? 场景设计: 将Home.js中的HomeData传递到MyScreen.js中 import React,{ Component } from 'react' import MyScreen from "./MyScreen"; class Home extends Component { constructor(props) { s

Vue2.x 兄弟组件之间的数据传递

兄弟组件之间的数据传递 思路:创建三个组件分别是<my-aaa>.<my-bbb>.<my-ccc>,在<my-ccc>中接收<my-aaa>与<my-bbb>发送的数据,当改变<my-aaa>或<my-bbb>所发送的数据时,<my-ccc>接收的数据也随之改变 html <body> <div id="box"> <my-aaa></