为应用添加多个Activity与参数传递
2015-09-12 09:30
246 查看
Intent的两个作用:
Intent(意图)----->激活组件(Activity),附带数据(即是传参数)。
意图作用之一:激活组件Activity的几种方式:
1>
public void openActivity(View v) {
Intent intent = new Intent();
intent.setClass(this,OtherActivity.class);//设置要激活的组件,在此行中要激活的组件是OtherActivity
startActivity(intent);
}
2>
public void openActivity(View v) {
Intent intent = new Intent();
intent.setClassName(this,"cn.itcast.activitys.OtherActivity");//设置要激活的组件,字符串"cn.itcast.activitys.OtherActivity"cn.itcast.activitys是包名
startActivity(intent);
}
3>
public void openActivity(View v) {
Intent intent = new Intent();
intent.setCompoent(new CompoentName(this,OtherActivity.class));
startActivity(intent);
}
4>
public void openActivity(View v) {
Intent intent = new Intent(this,OtherActivity.class);
startActivity(intent);
}
5>
public void openActivity(View v) {
Intent intent = new Intent();
intent.setClassName("cn.itcast.activitys","cn.itcast.activitys.OtherActivity");//可以用作跨应用激活组件,即可以用作激活其他应用(前提是没有使 //用权限,如果添加了权限,则不能激活)的组件,此处是激活本应用的组件
startActivity(intent);
}
意图作用之二:附带数据(传参数)
方法之一:
public void openActivity(View v) {
Intent intent = new Intent(this,OtherActivity.class);
intent.putExtra("company","传智播客");
intent.putExtra("age",5);
startActivity(intent);
}
在OtherActivity中接收参数
Intent intent = getIntent();//接收意图
String company = intent.getStringExtra("company");
int age = intent.getIntExtra("age",0);//如果参数值不存在,默认为0;
TextView textView = (TextView) this.findViewById(R.id.textview);
textView.setText("公司名:"+company+"年龄:"+age);
方法之二:
public void openActivity(View v) {
Intent intent = new Intent(this,OtherActivity.class);
//使用Bundle对象来存储数据
Bundle bundle = new Bundle();
bundle.putString("company","CSDN");
bundle.putInt("age",10);
//将数据批量添加进意图里面
intent.putExtras(bundle);
startActivity(intent);
}
在OtherActivity中接收参数方法之一:
Intent intent = getIntent();//接收意图
String company = intent.getStringExtra("company");
int age = intent.getIntExtra("age",0);//如果参数值不存在,默认为0;
TextView textView = (TextView) this.findViewById(R.id.textview);
textView.setText("公司名:"+company+"年龄:"+age);
在OtherActivity中接收参数方法之二:
Intent intent = getIntent();//接收意图
Bundle bundle = intent.getExtras();
String company = bundle.getString("company");
int age = bundle.getInt("age");
TextView textView = (TextView) this.findViewById(R.id.textview);
textView.setText("公司名:"+company+"年龄:"+age);
补充:
如果想在关闭OtherActivity时返回数据,则可以用以下方法:
public void openActivity(View v) {
Intent intent = new Intent(this,OtherActivity.class);
//使用Bundle对象来存储数据
Bundle bundle = new Bundle();
bundle.putString("company","CSDN");
bundle.putInt("age",10);
//将数据批量添加进意图里面
intent.putExtras(bundle);
startActivityForResult(intent,200);//设置请求码为200
}
@Override
//此方法是由系统调用的,当点击关闭按钮时调用此方法,并且向此系统传参数。
protected void onActivityResult(int requestCode,int resultCode,Intent data) {
String result = data.getStringExtra("result");
Toast.makeText(this.result,1).show();
}
在OtherActivity中;
Intent intent = getIntent();//接收意图
Bundle bundle = intent.getExtras();
String company = bundle.getString("company");
int age = bundle.getInt("age");
TextView textView = (TextView) this.findViewById(R.id.textview);
textView.setText("公司名:"+company+"年龄:"+age);
public void closeActivity(View v) {
Intent data = new Intent();
data.putExtra("result","张小小和老方在小树林.............");
setResult(30,data);//设置返回码和返回数据;
this.finish();//关闭当前Activity;
}
Intent(意图)----->激活组件(Activity),附带数据(即是传参数)。
意图作用之一:激活组件Activity的几种方式:
1>
public void openActivity(View v) {
Intent intent = new Intent();
intent.setClass(this,OtherActivity.class);//设置要激活的组件,在此行中要激活的组件是OtherActivity
startActivity(intent);
}
2>
public void openActivity(View v) {
Intent intent = new Intent();
intent.setClassName(this,"cn.itcast.activitys.OtherActivity");//设置要激活的组件,字符串"cn.itcast.activitys.OtherActivity"cn.itcast.activitys是包名
startActivity(intent);
}
3>
public void openActivity(View v) {
Intent intent = new Intent();
intent.setCompoent(new CompoentName(this,OtherActivity.class));
startActivity(intent);
}
4>
public void openActivity(View v) {
Intent intent = new Intent(this,OtherActivity.class);
startActivity(intent);
}
5>
public void openActivity(View v) {
Intent intent = new Intent();
intent.setClassName("cn.itcast.activitys","cn.itcast.activitys.OtherActivity");//可以用作跨应用激活组件,即可以用作激活其他应用(前提是没有使 //用权限,如果添加了权限,则不能激活)的组件,此处是激活本应用的组件
startActivity(intent);
}
意图作用之二:附带数据(传参数)
方法之一:
public void openActivity(View v) {
Intent intent = new Intent(this,OtherActivity.class);
intent.putExtra("company","传智播客");
intent.putExtra("age",5);
startActivity(intent);
}
在OtherActivity中接收参数
Intent intent = getIntent();//接收意图
String company = intent.getStringExtra("company");
int age = intent.getIntExtra("age",0);//如果参数值不存在,默认为0;
TextView textView = (TextView) this.findViewById(R.id.textview);
textView.setText("公司名:"+company+"年龄:"+age);
方法之二:
public void openActivity(View v) {
Intent intent = new Intent(this,OtherActivity.class);
//使用Bundle对象来存储数据
Bundle bundle = new Bundle();
bundle.putString("company","CSDN");
bundle.putInt("age",10);
//将数据批量添加进意图里面
intent.putExtras(bundle);
startActivity(intent);
}
在OtherActivity中接收参数方法之一:
Intent intent = getIntent();//接收意图
String company = intent.getStringExtra("company");
int age = intent.getIntExtra("age",0);//如果参数值不存在,默认为0;
TextView textView = (TextView) this.findViewById(R.id.textview);
textView.setText("公司名:"+company+"年龄:"+age);
在OtherActivity中接收参数方法之二:
Intent intent = getIntent();//接收意图
Bundle bundle = intent.getExtras();
String company = bundle.getString("company");
int age = bundle.getInt("age");
TextView textView = (TextView) this.findViewById(R.id.textview);
textView.setText("公司名:"+company+"年龄:"+age);
补充:
如果想在关闭OtherActivity时返回数据,则可以用以下方法:
public void openActivity(View v) {
Intent intent = new Intent(this,OtherActivity.class);
//使用Bundle对象来存储数据
Bundle bundle = new Bundle();
bundle.putString("company","CSDN");
bundle.putInt("age",10);
//将数据批量添加进意图里面
intent.putExtras(bundle);
startActivityForResult(intent,200);//设置请求码为200
}
@Override
//此方法是由系统调用的,当点击关闭按钮时调用此方法,并且向此系统传参数。
protected void onActivityResult(int requestCode,int resultCode,Intent data) {
String result = data.getStringExtra("result");
Toast.makeText(this.result,1).show();
}
在OtherActivity中;
Intent intent = getIntent();//接收意图
Bundle bundle = intent.getExtras();
String company = bundle.getString("company");
int age = bundle.getInt("age");
TextView textView = (TextView) this.findViewById(R.id.textview);
textView.setText("公司名:"+company+"年龄:"+age);
public void closeActivity(View v) {
Intent data = new Intent();
data.putExtra("result","张小小和老方在小树林.............");
setResult(30,data);//设置返回码和返回数据;
this.finish();//关闭当前Activity;
}
相关文章推荐
- 【Java多线程】-线程中断
- The difference between LayoutInflater.inflate and findViewById
- 某MIT计算机学生谈学数学
- JavaScript学习笔记(三):JavaScript也有入口Main函数
- iOS开发 - 三方库实现聚光引导效果与触摸跟踪动效
- 解释器与编译器 (本文转自:http://blog.chinaunix.net/uid-22363424-id-113275.html)
- android adb经常使用的命令
- 静态代码块
- Linux下搭建svn
- 《剑指offer》把数组排成最小的数
- 小小菜之Cocos2d-x游戏开发旅程——项目实例:飞机大战(2)
- Linux了解进程的地址空间
- Intel 80X86寄存器分类介绍
- Oracle sql 优化の索引监控
- MySQL 批量插入数据优化
- 零基础学python-16.1 作用域快速入门
- 零基础学python-16.1 作用域快速入门
- hdu-5029
- Composite和Decorater模式联系和区别
- OSGI系列一---环境搭建