为应用添加多个Activity与参数传递

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;

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值