基于Bundle的消息传递
来源:互联网 发布:淘宝产品拍摄相机选择 编辑:程序博客网 时间:2024/05/28 06:07
Buddle是一种数据结构,类似于哈希表,是一种键值对,但其值是规定的类型,不能是任意的对象类型,常用类型都是允许的。Buddle的部分方法:
clear():清除此bundle映射中所有保存的数据。
clone():克隆当前bundle中的数据。
containsKey(String key):返回指定key的值。
getString(String key):返回指定key的字符。
hasFileDescriptors():指示是否包含任何捆绑打包文件描述符。
isEmpty():如果这个捆绑映射为空则返回true。
putString(String key, String value):插入一个给定key的字符串值。
remove(String key):移除指定key的值。
putExtras():取出相应buddle中的数据。
public class BuddleDemo_MainActivity extends Activity implements View.OnClickListener { EditText etName; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); etName = (EditText) findViewById(R.id.etname); Button btn = (Button) findViewById(R.id.btn);//将新建的Button实例和布局中建立的Button对应 btn.setOnClickListener(this);//侦听按钮被单击的动作 } public void onClick(View v) { switch (v.getId()) { case R.id.btn: String info = etName.getText().toString();//得到用户输入的内容 Bundle bundle = new Bundle();//新建Buddle //保存输入的信息 bundle.putString("name", info);//将用户输入的内容存放在name字段中 Intent intent=new Intent(BuddleDemo_MainActivity.this,AnotherActivity.class);//跳转 intent.putExtras(bundle);//取出buddle信息 finish();//关闭此Activity startActivity(intent);//确定新的Activity default: break;}}}
如下代码是在新的Activity中,取出其中Buddle存储的信息并显示:
public class AnotherActivity extends Activity { private TextView etName; protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.another);//布局文件 etName=(TextView)findViewById(R.id.textname);//将新建的EditText实例和布局中建立的EditText对应 Bundle b=getIntent().getExtras();//从本Intent中对应的Buddle中取出数据 String info=b.getString("name");//得到对应字段的内容 etName.setText("您的姓名:"+info);//显示对应的用户输入的信息 }}
通过Buddle传递多参数:
Buddle是一个类似键值对的数据结构,她不仅可以传递单个键值对,也可以传递多个键值对
public class EditTextDemo_Activity extends Activity { @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main);//调用main.xml布局 Button mybutton = (Button) findViewById(R.id.mybutton);//在main.xml中已经定义好 mybutton.setOnClickListener(ifclick);//侦听按钮是否被点击 }private Button.OnClickListener ifclick = new Button.OnClickListener() { public void onClick(View v) { Intent intent = new Intent();//新建一个Intent Bundle myBundleForName1 = new Bundle();//新建一个Bundle用于传递数据 myBundleForName1.putString("store", "你好");//将字符串变量存储在字段store中。 intent.putExtras (myBundleForName1);//将第一个Buddle中的键值对存储在Intent实例中 Bundle myBundleForName2 = new Bundle();//新建一个Bundle用于传递变量 myBundleForName2.putString("mem", "欢迎测试Bundle");//将字符串变量存储在字段mem中。 intent.putExtras (myBundleForName2);//将第二个Buddle中的键值对也存储在Intent实例中,可见Intent实例中可以存储多个键值对 intent.setClass(EditTextDemo_Activity.this, EditTextActivity.class);//通过intent打开另外的Activity startActivity(intent);//从当前的主Activity跳转到EditTextActivity中}}}
目标Activity:
public class EditTextActivity extends Activity{ @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); Bundle mybundle = this.getIntent().getExtras();//得到Bundle中存储的信息 String mybundlestring1 = mybundle.getString("store");//得到Bundle中存储的store字段信息 String mybundlestring2 = mybundle.getString("mem");//得到Bundle中存储的mem字段信息 setTitle(mybundlestring1+mybundlestring2);//将存储的两个Bundle信息拼接起来作为Activity的标题 setContentView(R.layout.edittext);//布局 EditText my = (EditText) findViewById(R.id.myedittext);//将EditText实例和在布局中的相应widget组件联系起来 CharSequence old = my.getText();//得到该组件的设定信息 my.setText("喂!" + old);//注意字符串拼接方法 Button mybutton = (Button) findViewById(R.id.mybutton2);//在main.xml中已经定义好 mybutton.setOnClickListener(clickornot);//侦听按钮是否被点击 } private Button.OnClickListener clickornot = new Button.OnClickListener() { public void onClick(View v) { EditText mytext = (EditText)findViewById(R.id.myedittext);//myedittext在edittext.xml中有定义 CharSequence newvalue = mytext.getText();//得到用户输入的内容 setTitle(newvalue);//设定为Activity标题}}}
0 0
- 基于Bundle的消息传递
- 主题:利用Bundle实现Android Activity间消息的传递
- 利用Bundle实现Android Activity间消息的传递
- 利用Bundle实现Android Activity间消息的传递
- 利用Bundle实现Android Activity间消息的传递
- 利用Bundle实现Android Activity间消息的传递
- 利用Bundle实现Android Activity间消息的传递
- 利用Bundle实现Android Activity间消息的传递
- 基于CORBA的可靠消息传递技术
- 基于Service Broker的异步消息传递
- android 入门学习笔记 利用bundle实现android,activity间消息的传递
- Bundle, 传递数据的包裹
- 基于TCP实现简单的客户端服务端的消息传递
- 基于UDP实现简单的客户端服务端的消息传递
- 基于多种协议的消息传递机制简介(转)
- 基于ExtJS的左右框架和消息传递处理
- Android利用Bundle类实现activity消息传递
- Message消息队列中多个数据传递(Bundle)
- 蓝桥杯 李白打酒
- Git初体验之远程仓库
- 112. Path Sum
- Qt小软件:LanFileSender(局域网文件传输小工具)
- android对启动模式的深入了解
- 基于Bundle的消息传递
- ListView实现颜色变化的单选效果
- [BLE]低功耗蓝牙介绍
- 如何在folat left的时候让子div撑开父div
- 安卓通知的使用系列1:土司(Toast)通知和自定义土司(Toast)通知
- iOS UITableView简介 —— HERO博客
- p6spy2.x配置为slf4j-log4j输出日志同时到控制台和文件
- 225. Implement Stack using Queues
- 禁止UIScrollView垂直方向滚动,只允许水平方向滚动;或只允许垂直方向滚动