我向用户展示了一个警告对话框,其中包含2个项目,我想为这两个项目实现OnClickListener。我可以设置1项,但是当我尝试使用switch语句时,我收到此错误:
无法打开CharSequence []类型的值。只允许使用可转换的int值或枚举常量
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
// TODO Auto-generated method stub
final CharSequence[] items = {"Reviews", "More Info"};
AlertDialog.Builder builder = new AlertDialog.Builder(this);
builder.setTitle("Please Select an Option");
builder.setItems(items, new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
// TODO Auto-generated method stub
switch (items){
case 1 :
//do something
case 2:
Intent intent = new Intent (MyActivity.this, WebViewActivity.class);
MyActivity.this.startActivity(intent);
}
});
AlertDialog alert = builder.create();
alert.show();
答案 0 :(得分:0)
Android运行JRE 6.如果我没有弄错的话。直到今年推出的JRE 7才允许执行切换(CharSequence [])和切换(String)。你将不得不做一系列if else语句来解决这个问题。
答案 1 :(得分:0)
Using strings in a switch case for a menu?
在Java 7中添加了switch语句中的字符串。例如,请看一下这里。由于Android开发目前不基于Java 7语法,因此您必须采用备用路由。这意味着:if-else语句。他们不是最漂亮的,但他们会完成工作。
所以可以尝试
public void onClick(DialogInterface dialog, int which) {
// TODO Auto-generated method stub
switch (which){
case 0 :
String str = items[which];
//do something
case 1:
Intent intent = new Intent (MyActivity.this, WebViewActivity.class);
MyActivity.this.startActivity(intent);
}
});
http://www.botskool.com/geeks/how-create-dialog-box-android-part-2