为警报对话框中显示的列表视图项实现单击侦听器

时间:2012-06-29 18:59:16

标签: java android

我向用户展示了一个警告对话框,其中包含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();

2 个答案:

答案 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