您的位置:首页 > 其它

为应用添加多个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;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: