1.回顾
上篇学习了 安卓的 五大布局;
2.知识点- Intent
(1)普通跳转 (startActivity)
(2) 带参数跳转 (startActivity)
(3) 带返回值 跳转 (startActivityForResult)
3.普通跳转
3.1 正常写法:
Intent intent=new Intent(MainActivity.this,FristActivity.class);
startActivity(intent);
3.2 一行写法:
startActivity(new Intent(MainActivity.this,FristActivity.class));
3.3 声明上下文写法:
private Context context;
在OnCreate里 赋值
context=MainActivity.this;
后再Intent 里调用
startActivity(new Intent(context,FristActivity.class));
4.带参数跳转
4.1 简单的参数
Intent intent=new Intent(MainActivity.this,FristActivity.class);
intent.putExtra("yuan","ming");
startActivity(intent);
4.2 多个参数借助 Buddle
Intent intent=new Intent(MainActivity.this,FristActivity.class);
Bundle bundle=new Bundle();
bundle.putString("name","yuan");
bundle.putInt("age", 23);
intent.putExtra("data", bundle);
startActivity(intent);
4.3 接收参数
在第二个 Activity 里,通过 Intent 接收参数值:
Intent intent=getIntent();
Bundle bundle= intent.getBundleExtra("data");
tv_frist.setText(bundle.getString("name")+" | "+bundle.getInt("age"));
5. 带返回值的跳转
5.1 startActivityForResult 参数
第一个参数是:intent 对象
第二个参数是:requestCode 请求标示 int 类型
Intent intent=new Intent(MainActivity.this,FristActivity.class);
startActivityForResult(intent, 1);
5.2 重写onActivityResult 方法
在要执行跳转的Activity ,重写 onActivityResult 方法;参数为:
会发现 这里也有 requestCode 和 发生跳转时设置的 requestCode 标示;
*
* startActivityForResult 跳转 有返回值 ,重写onActivityResult(non-Javadoc)
* 第一个参数:requestCode 请求标识
* 第二个参数:resultCode 第二个页面返回的标识
* 第三个参数:data 返回的数据
* @see android.app.Activity#onActivityResult(int, int, android.content.Intent)
*/
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
if(requestCode==1&&resultCode==2){
String text=data.getStringExtra("data");
show(text);
tv_mian.setText(text);
}
}
5.3 设置返回值
在第二个Activity 中通过 setResult()方法实现 参数回传(参数 其实是封装在 Intent 对象里的 ):
setResult(resultCode, data);
参数:
第一个参数:resultCode 和 上面 上一个Activity 里中重写的OnActivityResult 中一样,作为标示,来自这个Activity
第二个参数:是 封装数据的Intent 对象 ,刚刚好是重写的第三个参数
比如:
Intent data=new Intent();
data.putExtra("data","原明卓");
setResult(2, data);
//结束当前页面
finish();
6.demo 免积分下载
http://download.csdn.net/detail/lablenet/9036923