分享

一步一步android(12):关于Intent【接前一个例子】

 lzChen07 2010-11-01

之前说了在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;
        }

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多