这是我的代码:
public String toString() {
int mode = HomeScreenActivity.displayMode;
switch(mode){
case 1:
return _id + ". " + lastName + " " + firstName;
case 2:
return _id + ". " + firstName + " " + mobileNumber;
case 3:
return _id + ". " + lastName + " " + mobileNumber;
default:
return _id + ". " + firstName + " " + lastName;
}
}
问题是,只有默认代码正常工作。
我知道我可能错过了一些愚蠢的东西,但我无法让它发挥作用。
编辑:在toString()
方法内打印不起作用,它不打印任何内容。但我不认为这意味着它没有被运行,因为我的联系人实际上是如何在我的ListView中显示的,所以我不确定发生了什么...
答案 0 :(得分:1)
我的程序中有这个代码:
public void onClick(DialogInterface dialog, int which) {
which = ((AlertDialog) dialog).getListView().getCheckedItemPosition();
System.out.println("The display selected item numebr is " + which);
switch (which) {
case 0:
setDisplayMode(0);
displayChoice = 0;
case 1:
setDisplayMode(1);
displayChoice = 1;
break;
case 2:
setDisplayMode(2);
displayChoice = 2;
case 3:
setDisplayMode(3);
displayChoice = 3;
}
}
没有中断,所以案例3始终在运行,每次都将displayChoice
设置为3。所以我在每个案例结束时加入了休息时间,并且它有效。
答案 1 :(得分:-1)
你必须使用break
public String toString() {
int mode = HomeScreenActivity.displayMode;
switch(mode){
case 1:
return _id + ". " + lastName + " " + firstName;
break;
case 2:
return _id + ". " + firstName + " " + mobileNumber;
break;
case 3:
return _id + ". " + lastName + " " + mobileNumber;
break;
default:
return _id + ". " + firstName + " " + lastName;
}
}
答案 2 :(得分:-1)
在这里你应该考虑两件事
您应该添加break语句。
在类型(int)范围内切换(模式)。