思路:首先确定用户在第一次弹出的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的。