Activity跳转与传值,主要是通过Intent类,Intent的作用是激活组件和附带数据。
一、Activity跳转
方法一
Intent intent = new Intent(A.this, B.class);
startActivity(intent)
方法二
Intent intent = new Intent();
intent.setClass(A.this, B.class);
startActivity(intent);
实现从A跳转到B(A、B均继承自Activity)
二、传递数据
Activity A 传递数据
方法一
Intent intent = new Intent();
intent.setClass(A.this, B.class);
intent.putExtra("name", "xy");
intent.putExtra("age", 22);
startActivity(intent);
方法二
Intent intent = new Intent(A.this, B.class);
Bundle bundle = new Bundle();
bundle.putString("name", "xy");
bundle.putInt("age", 22);
intent.putExtras(bundle);
startActivity(intent);
Activity B 接收数据
// 获取参数1
Intent intent = this.getIntent();
String name = intent.getStringExtra("name");
int age = intent.getIntExtra("age", 22); // 缺省值为22
// 获取参数2
Bundle bundle = intent.getExtras();
String name2 = bundle.getString("name");
int age2 = bundle.getInt("age", 22);
两种获取参数方式均可,并不是和传参1,2方法一一对应
三、Activity返回值
跳转后前一个Activity已经被destroy了。如若要返回并显示数据,就必须将前一个Activity再次唤醒,同时调用某个方法来获取并显示数据。做法如下
1.从A页面跳转到B页面时不可使用startActivity()方法,而要使用startActivityForResult()方法
2.在A页面的Activity中,需要重写onActivityResult(int requestCode, int resultCode, Intent data)方法
Activity A
[java]
// 有返回值的Activity
public void openNewActivity2(View v)
{
Intent intent = new Intent();
intent.setClass(this.getApplicationContext(), OtherActivity2.class);
intent.putExtra("name", "xy");
intent.putExtra("age", 20);
startActivityForResult(intent, 1);
}
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data)
{
// requestCode用于区分业务
// resultCode用于区分某种业务的执行情况
if (1 == requestCode && RESULT_OK == resultCode)
{
String result = data.getStringExtra("result");
Toast.makeText(this.getBaseContext(), result, Toast.LENGTH_SHORT).show();
}
else
{
Toast.makeText(this.getBaseContext(), "无返回值", Toast.LENGTH_SHORT).show();
}
}
// 有返回值的Activity
public void openNewActivity2(View v)
{
Intent intent = new Intent();
intent.setClass(this.getApplicationContext(), OtherActivity2.class);
intent.putExtra("name", "xy");
intent.putExtra("age", 20);
startActivityForResult(intent, 1);
}
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data)
{
// requestCode用于区分业务
// resultCode用于区分某种业务的执行情况
if (1 == requestCode && RESULT_OK == resultCode)
{
String result = data.getStringExtra("result");
Toast.makeText(this.getBaseContext(), result, Toast.LENGTH_SHORT).show();
}
else
{
Toast.makeText(this.getBaseContext(), "无返回值", Toast.LENGTH_SHORT).show();
}
}
Activity B
[java]
public void close(View v)
{
Intent intent = new Intent();
intent.putExtra("result", "返回值");
this.setResult(RESULT_OK, intent); // 设置结果数据
this.finish(); // 关闭Activity
}
public void close(View v)
{
Intent intent = new Intent();
intent.putExtra("result", "返回值");
this.setResult(RESULT_OK, intent); // 设置结果数据
this.finish(); // 关闭Activity
}
Activity跳转与传值,主要是通过Intent类,Intent的作用是激活组件和附带数据。
一、Activity跳转
方法一
Intent intent = new Intent(A.this, B.class);
startActivity(intent)
方法二
Intent intent = new Intent();
intent.setClass(A.this, B.class);
startActivity(intent);
实现从A跳转到B(A、B均继承自Activity)
二、传递数据
Activity A 传递数据
方法一
Intent intent = new Intent();
intent.setClass(A.this, B.class);
intent.putExtra("name", "xy");
intent.putExtra("age", 22);
startActivity(intent);
方法二
Intent intent = new Intent(A.this, B.class);
Bundle bundle = new Bundle();
bundle.putString("name", "xy");
bundle.putInt("age", 22);
intent.putExtras(bundle);
startActivity(intent);
Activity B 接收数据
// 获取参数1
Intent intent = this.getIntent();
String name = intent.getStringExtra("name");
int age = intent.getIntExtra("age", 22); // 缺省值为22
// 获取参数2
Bundle bundle = intent.getExtras();
String name2 = bundle.getString("name");
int age2 = bundle.getInt("age", 22);
两种获取参数方式均可,并不是和传参1,2方法一一对应
三、Activity返回值
跳转后前一个Activity已经被destroy了。如若要返回并显示数据,就必须将前一个Activity再次唤醒,同时调用某个方法来获取并显示数据。做法如下
1.从A页面跳转到B页面时不可使用startActivity()方法,而要使用startActivityForResult()方法
2.在A页面的Activity中,需要重写onActivityResult(int requestCode, int resultCode, Intent data)方法
Activity A
[java]
// 有返回值的Activity
public void openNewActivity2(View v)
{
Intent intent = new Intent();
intent.setClass(this.getApplicationContext(), OtherActivity2.class);
intent.putExtra("name", "xy");
intent.putExtra("age", 20);
startActivityForResult(intent, 1);
}
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data)
{
// requestCode用于区分业务
// resultCode用于区分某种业务的执行情况
if (1 == requestCode && RESULT_OK == resultCode)
{
String result = data.getStringExtra("result");
Toast.makeText(this.getBaseContext(), result, Toast.LENGTH_SHORT).show();
}
else
{
Toast.makeText(this.getBaseContext(), "无返回值", Toast.LENGTH_SHORT).show();
}
}
// 有返回值的Activity
public void openNewActivity2(View v)
{
Intent intent = new Intent();
intent.setClass(this.getApplicationContext(), OtherActivity2.class);
intent.putExtra("name", "xy");
intent.putExtra("age", 20);
startActivityForResult(intent, 1);
}
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data)
{
// requestCode用于区分业务
// resultCode用于区分某种业务的执行情况
if (1 == requestCode && RESULT_OK == resultCode)
{
String result = data.getStringExtra("result");
Toast.makeText(this.getBaseContext(), result, Toast.LENGTH_SHORT).show();
}
else
{
Toast.makeText(this.getBaseContext(), "无返回值", Toast.LENGTH_SHORT).show();
}
}
Activity B
[java]
public void close(View v)
{
Intent intent = new Intent();
intent.putExtra("result", "返回值");
this.setResult(RESULT_OK, intent); // 设置结果数据
this.finish(); // 关闭Activity
}
public void close(View v)
{
Intent intent = new Intent();
intent.putExtra("result", "返回值");
this.setResult(RESULT_OK, intent); // 设置结果数据
this.finish(); // 关闭Activity
}
相关推荐
安卓Android源码——(Activity跳转与操作).zip
Android四大组件——Activity——Activity的生命周期.doc
安卓Android源码——(Activity跳转与操作).rar
SmartGo:通过编译时注解生成文件,简化 Activity 跳转时传值及取值
android,启动service,并且service把值传给Activity显示
在Android系统的江湖中有四大组件:活动(Activity), 服务(Service), 广播接收器(Broadcast Reciver)和内容提供者(Content Provider)。...本篇博客要介绍的内容是活动的创建,活动的跳转与值的透传。 iOS中的V
Android Activity的跳转与传值详解 Activity跳转与传值,主要是通过Intent类来连接多个Activity,以及传递数据。 Intent是Android一个很重要的类。Intent直译是“意图”,什么是意图呢?比如你想从这个Activity...
android界面跳转与传值 android中Activity的跳转和值通过SharedPreferences传递。
Activity之间通信及其生命周期变化,及回传参数等基础知识点
android的activity直接传值问题
动手学Android之七——Activity生命周期例子程序,欢迎大家下载
Android_activity向fragment传值
activity之间的传值demo http://blog.csdn.net/dl10210950/article/details/52072584
android activityIntent 传值 传对象
基于android studio 3.1开发环境。展示了两个Activity中的简单传值
详细的介绍可以参考我的博客
主要介绍了Android 中两个Activity 之间的传值问题的相关资料,需要的朋友可以参考下
在Android的开发过程中,有时需要进行Activity之间的跳转,在页面跳转的过程中,有时需要传递指定的参数数据过去,例如:信息发布app返回查询条件的需要,为此,就需要了解这方面的技术与实现方式。