不同Activity的数据传递(Bundle的使用)
来源:互联网 发布:新版知乎如何添加回答 编辑:程序博客网 时间:2024/05/18 02:38
不同Activity的数据传递(Bundle的使用)
新建一个继承Activity类的BundleOneActivity,并设置布局文件为:bundleone.xml。
新建一个继承Activity类的BundleTwoActivity,并设置布局文件为:bundletwo.xml。
在bundleone.xml和bundletwo.xml中都添加一个TextView和Button组件
<TextView
android:id="@+id/bundleone_tv01"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_horizontal"
android:text="@string/go_to_bundletwoactivity"
android:textSize="24sp"/>
<Button
android:id="@+id/bundleone_btn01"
style="@android:style/Widget.Button.Inset"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_gravity="center_horizontal"
android:text="@string/go_to_bundletwoactivity"
android:textSize="24sp"/>
修改完布局文件后,在BundleOneActivity类中得到TextView和Button的实例化对象。并添加Button的点击事件。
package lyx.feng.simpletextdemo;
......
publicclass BundleOneActivityextends Activityimplements OnClickListener {
private TextViewtv = null;
private Buttonbtn = null;
@Override
protectedvoid onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
super.setContentView(R.layout.bundleone);
this.tv = (TextView)super.findViewById(R.id.bundleone_tv01);
this.btn = (Button)super.findViewById(R.id.bundleone_btn01);
this.tv.setText("这是要传递的参数");
this.btn.setOnClickListener(this);
}
@Override
publicvoid onClick(View v) {
}
}
接下来的操作主要是在onClick(View v)方法中进行。要在Activity传递数据,只需要将要传递的数据添加到Intent对象中即可。这里使用Bundle进行数据的封装。
具体代码:
Intent intent = new Intent(this, BundleTwoActivity.class);
Bundle bundle = new Bundle();
bundle.putString("info",tv.getText().toString());
intent.putExtras(bundle);
startActivity(intent);
而后在BundleTwoActivity类中对传递过来的数据进行接收。
package lyx.feng.simpletextdemo;
.......
publicclass BundleTwoActivityextends Activityimplements OnClickListener {
private TextViewtv = null;
private Buttonbtn = null;
@Override
protectedvoid onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
super.setContentView(R.layout.bundletwo);
this.tv = (TextView)super.findViewById(R.id.bundletwo_tv01);
this.btn = (Button)super.findViewById(R.id.bundletwo_btn01);
this.btn.setOnClickListener(this);
Bundle bundle = getIntent().getExtras();
if (bundle !=null) {
tv.setText("传递的数据是:");
tv.append(bundle.getString("info"));
}
}
@Override
publicvoid onClick(View v) {
}
}
运行效果:
点击按钮后:
如果要在BundleTwoActivity返回数据到BundleOneActivity,则需要在BundleTwoActivity的onClick()方法操作返回数据的代码。
Intent intent = new Intent();
intent.putExtra("temp","这是返回的数据!");
setResult(RESULT_OK, intent);
this.finish();
只是在BundleOneActivity进行跳转的时候选用:startActivityForResult()方法。
而后覆写Activity的onActivityResult()方法.
具体的代码:
@Override
protectedvoid onActivityResult(int requestCode, int resultCode, Intent data) {
switch (requestCode) {
case 1:
if (resultCode!=RESULT_OK) {
return;
}
Toast.makeText(this,"返回的数据:" + data.getExtras().getString("temp"),
Toast.LENGTH_SHORT).show();
break;
}
}
在BundleOneActivity点击返回按钮后:
- 不同Activity的数据传递(Bundle的使用)
- Android中级教程之(五)----->不同Activity之间的数据传递,Bundle对象的使用!
- 【数据】不同Activity之间的数据传递——Bundle
- 不同Activity之间的数据传递---Bundle对象的实现
- Android中级教程(三)之不同Activity之间的数据传递---Bundle对象的使用!
- Android中级教程(三)之不同Activity之间的数据传递---Bundle对象的使用!
- Android笔记三.不同Activity之间的传递数据(Bundle对象的使用)
- 【Android中级教程(三)之不同Activity之间的数据传递---Bundle对象的使用】的改进!
- bundle实现Activity之间的数据传递
- Android activity 之间的数据传递 bundle
- [读书摘记]不同Activity之间的数据传递--Bundle对像的实现
- Ex3.10 不同Activity之间的数据传递——Bundle对象的实现
- <Bundle>通过bundle进行Activity之间的数据传递
- 不同Activity之间传递数据--Bundle对象和startActivityForResult方法的实现
- Android判断网络状态是否断开+Android完全关闭应用程序+ 本文讲述了Android中不同Activity之间的数据传递 — Bundle对象的实现(-)+Android中Bundle的使用示例
- 使用Intent和Bundle的数据传递
- 使用Bundle在Activity间传递数据
- 使用Bundle在Activity之间传递数据
- Hadoop安装教程_单机/伪分布式配置_Hadoop2.6.0/Ubuntu14.04
- [Linux]O_CLOEXEC 标志
- 自定义控件(一),点击文本变换数字
- PHP界面显示中文乱码
- 数据的存储方式:plist、归档、用户偏好设置
- 不同Activity的数据传递(Bundle的使用)
- 浙大PAT 1058
- Spark快速入门指南 – Spark安装与基础使用
- The Dominant Color (20)
- LeetCode OJ 4.Median of Two Sorted Arrays
- C语言实现双向非循环链表(不带头结点)的清空
- C/C++中define定义的常量与const常量
- 为什么要写博客
- LeetCode OJ 5.Longest Palindromic Substring