关于Bundle及其在不同activity之间的传值
来源:互联网 发布:打印出库单软件 编辑:程序博客网 时间:2024/05/16 19:43
接着上一篇中的使用Intent在不同activity之间传值的问题来看,在使用intent来传值的时候是存在一些局限的。例如,当同时有多种不同类型的值需要来绑定和传递的时候,使用Intent就比较不方便了,而这种时候便可以采用Bundle来传值。
具体的使用方法就是:新建了一个Intent之后,可以新建一个Bundle,再将其添加到Intent,然后可以将要传递的值分别绑定添加到Bundle对象上。这里可以形象的将Bundle看做一个盒子,如果原来的Intent对象每次只能传递一个值,那么Bundle对象就是负责将要传递的多种类型的值封装在一起,相当于把这些对象装到一个盒子里,然后一次传递到下一个activity中。
具体的例子如下:
发送信息的是MainActivity,接收信息的是SecondActivity
MainActivity的布局文件如下:
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical" android:paddingLeft="@dimen/activity_horizontal_margin" android:paddingRight="@dimen/activity_horizontal_margin" android:paddingTop="@dimen/activity_vertical_margin" android:paddingBottom="@dimen/activity_vertical_margin" tools:context="com.example.radiobarseekbar.indexactivitybuttons.MainActivity"> <TextView android:text="主界面:用来发送值" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_margin="10px" android:id="@+id/tvSend"/> <EditText android:layout_width="fill_parent" android:layout_height="wrap_content" android:layout_margin="10px" android:id="@+id/etSend"/> <Button android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_gravity="center" android:text="点击,发送消息到SecondActivity" android:id="@+id/btnSend"/></LinearLayout>
两个activity的代码如下:
发送消息的MainActivity
package com.example.radiobarseekbar.indexactivitybuttons;import android.app.Activity;import android.content.Intent;import android.os.Bundle;import android.view.Menu;import android.view.MenuItem;import android.view.View;import android.widget.Button;import android.widget.EditText;import android.widget.TextView;public class MainActivity extends Activity { private TextView tvSend; private EditText etSend; private Button btnSend; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); tvSend = (TextView) findViewById(R.id.tvSend); etSend = (EditText) findViewById(R.id.etSend); btnSend = (Button) findViewById(R.id.btnSend); btnSend.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { String strSendMsg = etSend.getText().toString(); Intent intent = new Intent(); //intent.putExtra("msg",strSendMsg); intent.setClass(MainActivity.this,SecondActivity.class); Bundle bundle= new Bundle(); bundle.putInt("year",2015); bundle.putDouble("money",20.0); bundle.putString("msg",strSendMsg); 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; } @Override public boolean onOptionsItemSelected(MenuItem item) { // Handle action bar item clicks here. The action bar will // automatically handle clicks on the Home/Up button, so long // as you specify a parent activity in AndroidManifest.xml. int id = item.getItemId(); if (id == R.id.action_settings) { return true; } return super.onOptionsItemSelected(item); }}
package com.example.radiobarseekbar.indexactivitybuttons;import android.app.Activity;import android.content.Intent;import android.os.Bundle;import android.widget.Toast;/** * Created by fyy on 15-4-2. */public class SecondActivity extends Activity{ @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_second); Intent intent = this.getIntent(); Bundle bundle = intent.getExtras(); Integer year = bundle.getInt("year"); Double money = bundle.getDouble("money"); String strGetMsg = bundle.getString("msg"); Toast.makeText(SecondActivity.this,"接收到的消息是:"+strGetMsg+"接收到的年份是:"+year+"仍有的钱数是"+money,Toast.LENGTH_LONG).show(); }}
0 0
- 关于Bundle及其在不同activity之间的传值
- 在Activity之间传值,遍历Bundle
- 关于Bundle在activity之间传递对象的方法
- 【Android】利用Bundle在不同Activity之间传递数据
- 安卓类——使用Bundle在Activity之间传值
- Intent 在不同Activity之间的传值
- 不同Activity之间的数据传递---Bundle对象的实现
- 【数据】不同Activity之间的数据传递——Bundle
- 在Activity之间使用Intent传值和Bundle传值的区别和方式
- Android菜鸟的成长笔记(10)——使用Bundle在Activity之间传值
- Android菜鸟的成长笔记(10)——使用Bundle在Activity之间传值
- 关于Bundle和Intent在两个activity之间传输数据的问题
- Activity之间使用Intent和Bundle传值的区别
- Android 不同Activity之间的传值
- Activity与Activity之间,Fragment与Fragment之间通过Bundle传值的研究
- Activity与Activity之间,Fragment与Fragment之间通过Bundle传值的研究
- 在不同的Activity之间传递数据
- 关于activity之间通过bundle传值
- 内置视图-滚动视图
- CAS指令 incrementAndGet方法 JAVA非阻塞同步
- uitableview
- 面试:机器学习--支持向量机
- Object转XML && XML转Object
- 关于Bundle及其在不同activity之间的传值
- CSUOJ--1563: Lexicography
- Android的生命周期(三)
- opencv findContours使用问题
- 添加view
- jQuery的prop和attr方法之间区别
- 10000 pcs free gift of chinese top grade brown film faced plywood
- 参数自适应的单层 bp 神经网络
- 019:函数:我的地盘听我的