之前说了在android里面,消息的传递通过Intent翻译过来叫意图或者简称“要”
“要”(intent)这个字很重要,可以让我们想吃鸡屁股(Activity)就吃鸡屁股,
想吃鸡腿(另一个Activity)就吃鸡腿。
但前面的闪频的例子存在一个前提性的假设:
即我知道两个Activity的先后顺序,期间也无参数的传递。
但事实的情况是,很多的时候,我们要在鸡屁股和鸡腿之间进行选择。
通俗的话就是说:我们需要进行参数的传递。
比如说,我们登录QQ,首先登录界面(activity)要把QQ号(String参数),QQ密码发送至服务器进行验证【成功或者失败】(Bool参数)之后,
通过“Intent”传值给另一个Activity,而这个Activity得到了这个Intent所包含的信息之后,
才能进一步判断是启动下载好友列表,还是返回登录失败的结果。
做过动态网页的人都知道,有一种方法叫做Request。有一种东西叫做Session或者Viewstate。
而在Android里面,我们叫他Bundle,翻译过来叫做“包”。
接下来演示,如果通过“包”来传递我们的“要”
点击:Chicken Butt-->
点击:Chicken Thigh-->
实现代码:
在第一个Activity中添加:
Button button1=(Button)this.findViewById(R.id.jitui); Button button2=(Button)this.findViewById(R.id.jipigu); button1.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { Intent a=new Intent(); Bundle bundle = new Bundle(); bundle.putInt("IWANT", 1); a.setClass(YaoFtp.this, ImageList.class); a.putExtras(bundle); startActivity(a); } }); button2.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { Intent a=new Intent(); Bundle bundle = new Bundle(); bundle.putInt("IWANT", 2); a.setClass(YaoFtp.this, ImageList.class); a.putExtras(bundle); startActivity(a); } });
在第二个Activity中添加:
ImageView imageview=(ImageView)this.findViewById(R.id.imageview1); Bundle bundle=this.getIntent().getExtras(); switch(bundle.getInt("IWANT")){ case 1: imageview.setBackgroundResource(R.drawable.jitui); break; case 2: imageview.setBackgroundResource(R.drawable.jipigu); break; }
|