android使用Intent传递数据 2 种方式(Intent和Bundle)
来源:互联网 发布:淘宝代销物流怎么设置 编辑:程序博客网 时间:2024/06/03 01:01
在两个Activity之间传递数据,最终都是通过Intent传递,但设置数据和保存数据方式有两种(使用Intent 和 Bundle),分别对应如下:
设置数据(MainActivity.java)
方法一:1.直接用intent.putExtra("name","Nicole")
Intent intent = new Intent(MainActivity.this,OtherActivity.class);
intent.putExtra("name", "Nicole");
intent.putExtra("age", 25);
intent.putExtra("address", "Shenzhen");
方法二:2.用bundle.putString("name","Nicole") ;
Intent intent = new Intent(MainActivity.this,OtherActivity.class);
Bundle bundle = new Bundle();
bundle.putString("name", "Ben");
bundle.putInt("age", 28);
bundle.putString("address", "China");
intent.putExtras(bundle); //将bundle传入intent中。
读取数据 (OtherActivty.java)
方法一:直接用Intent , String nameString = intent.getStringExtra("name");
Intent intent = getIntent();
String nameString = intent.getStringExtra("name");
int age = intent.getIntExtra("age",0);
String addressString = intent.getStringExtra("address");
方法二:用bundle , String nameString = bundle.getString("name");
Intent intent = getIntent();
Bundle bundle = intent.getExtras();
String nameString = bundle.getString("name");
int age = bundle.getInt("age");
String addressString = bundle.getString("address");
---------------------------------------------------------------------------------------------------------------------------------------------
示例一效果图: 直接用Intent设置和读取数据
关键步骤一:MainActivity.java , 通过方法一,即直接用Intent传递数据
package com.android.myapp;import android.os.Bundle;import android.app.Activity;import android.content.Intent;import android.view.Menu;import android.view.View;import android.widget.Button;public class MainActivity extends Activity {private Button button; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); button = (Button)findViewById(R.id.button); button.setOnClickListener(new View.OnClickListener() {@Overridepublic void onClick(View v) {// TODO Auto-generated method stub//方法一:直接用Intent传数据Intent intent = new Intent(MainActivity.this,OtherActivity.class);intent.putExtra("name", "Nicole");intent.putExtra("age", 25);intent.putExtra("address", "Shenzhen");//方法二,用Bundle传数据/*Intent intent = new Intent(MainActivity.this,OtherActivity.class);Bundle bundle = new Bundle();bundle.putString("name", "Ben");bundle.putInt("age", 28);bundle.putString("address", "China");intent.putExtras(bundle);*/startActivity(intent);}}); } @Override public boolean onCreateOptionsMenu(Menu menu) { // Inflate the menu; this adds items to the action bar if it is present. getMenuInflater().inflate(R.menu.main, menu); return true; } }
关键步骤二:OtherActivity.java , 通过方法一,即 用Intent直接读取传递的数据
package com.android.myapp;import android.app.Activity;import android.content.Intent;import android.os.Bundle;import android.widget.TextView;public class OtherActivity extends Activity {private TextView textView;@Overrideprotected void onCreate(Bundle savedInstanceState) {// TODO Auto-generated method stubsuper.onCreate(savedInstanceState);setContentView(R.layout.activity_other);textView = (TextView)findViewById(R.id.msg);//方法一:直接用intent获取 intent 中传递的数据Intent intent = getIntent();String nameString = intent.getStringExtra("name");int age = intent.getIntExtra("age",0);String addressString = intent.getStringExtra("address");//方法二:用bundle获取 intent 中传递的数据/*Intent intent = getIntent();Bundle bundle = intent.getExtras();String nameString = bundle.getString("name");int age = bundle.getInt("age");String addressString = bundle.getString("address");*/String personInfo = "Dear , my love ~"+"\n"+"Name-->>"+nameString+"\n"+"Age-->>"+age+"\n"+"Address-->>"+addressString;textView.setText(personInfo);}}
----------------------------------------------------------------------------------------------------------------------
示例二效果图: 直接用bundle设置和读取数据。关键代码跟上面一样,只要使用以上两个Activity中注释掉的 方法二 即可。
- android使用Intent传递数据 2 种方式(Intent和Bundle)
- Android使用intent、bundle传递数据
- 使用Intent和Bundle的数据传递
- Android Intent传递Bundle数据
- Intent和Bundle传递数据
- 数据传递intent,Bundle
- Android 使用Intent和Bundle传递数据及如何传递enum
- android Activity之间通过Bundle和Intent传递数据
- android intent 用bundle传递数据
- Android中Intent结合Bundle传递数据
- [Android] Intent及Bundle传递数据
- 安卓 Intent (1)数据传递 Intent和Bundle详解
- android 通过Intent使用Bundle传递对象
- Intent传递数据和Bundle传递数据的区别
- 【Android】使用Intent传递数据
- Intent 传递数据,bundle 传递数组
- Intent 传递数据,bundle 传递数组
- Intent 传递数据,bundle 传递数组
- ListView直接子条目的高度有效
- OrmLite数据库开源组件学习(1)
- Linux---rrdtool编译时的报错
- Linux系统调用--getpid/getppid函数详解
- Android Wifi work station Framework and Architecture
- android使用Intent传递数据 2 种方式(Intent和Bundle)
- python中@staticmethod 、@classmethod 与一般方法的区别
- 跟我一起写 Makefile(一)
- android 多屏幕支持
- Android 的定向广播 局部广播
- UVa 489 - Hangman Judge
- delete和delete[]的区别
- javaweb之自定义标签——简单标签库
- Hadoop权限管理(转)