性格色彩测试android程序开发之五--dialog事件的处理

思路:首先确定用户在第一次弹出的dialog中选择的是哪一种颜色,也就是说确定用户选择的颜色是“红色”、“蓝色”、“绿色”还是“黄色”。当用户点击相应的颜色后,就会弹出另个一个dialog,相应地前面的那个dialog自动消失。再弹出的这个dialog中有三项,分别是“详细解释”,“天然缺陷”、“天然优势”。见图:

当用户选择了第二个dialog中的任何一项时,就会弹出相应的交互界面。如下图:


下面介绍这是如何实现的。

首先,这两个dialog都是使用的alertdialog,具体代码如下:AlertDialog.Builder builder; builder = new Builder(Logan_LeJiaActivity.this); builder.setIcon(R.drawable.icon).setItems(arr, new ItemListener2()); builder.show();从代码中可以看出,对该dialog进行了监听, ItemListener2类的代码如下:

// 对第二级的dialog进行监听相应 class ItemListener2 implements DialogInterface.OnClickListener { Intent intent = new Intent(); Bundle bundle = new Bundle(); @Override public void onClick(DialogInterface dialog, int which) { // 从0-2依次是:"详细解释", "天然缺陷", "天然优势" if (which == 0) { // 详细解释被选中,激活一个新的ActivityDetails intent.setClass(Logan_LeJiaActivity.this, ActivityDetails.class); if (whichcolor == red) { bundle.putInt("flag", redAnddetail); } else if (whichcolor == blue) { bundle.putInt("flag", blueAnddetail); } else if (whichcolor == green) { bundle.putInt("flag", greenAnddetail); } else if (whichcolor == yellow) { bundle.putInt("flag", yellowAnddetail); } } else if (which == 1) { // 天然缺陷被选中,激活一个新的ActivityDisadvantages intent.setClass(Logan_LeJiaActivity.this, ActivityDetails.class); if (whichcolor == red) { bundle.putInt("flag", redAndadvantages); } else if (whichcolor == blue) { bundle.putInt("flag", blueAndadvantages); } else if (whichcolor == green) { bundle.putInt("flag", greenAndadvantages); } else if (whichcolor == yellow) { bundle.putInt("flag", yellowAndadvantages); } } else if (which == 2) { // 天然优势被选中,激活一个新的ActivityAdvantges intent.setClass(Logan_LeJiaActivity.this, ActivityDetails.class); if (whichcolor == red) { bundle.putInt("flag", redAnddisadvantages); } else if (whichcolor == blue) { bundle.putInt("flag", blueAnddisadvantages); } else if (whichcolor == green) { bundle.putInt("flag", greenAnddisadvantages); } else if (whichcolor == yellow) { bundle.putInt("flag", yellowAnddisadvantages); } } intent.putExtra("mybundle", bundle); startActivity(intent); } }
对事件处理的方法就是:根据用户选择的那种颜色,以及相应颜色下的那种属性,来决定应该在激活的新的Activity中显示什么内容。而这种控制信息是通过intent传给新激活的activity的。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值