Implementar un detector de clics para los elementos de vista de lista presentados en el cuadro de diálogo de alerta

Estoy presentando al usuario un cuadro de diálogo de alerta que contiene 2 elementos, quiero implementar un OnClickListener para ambos elementos. Puedo configurar 1 elemento, pero cuando trato de usar la declaración de cambio, aparece este error:

No se puede activar un valor de tipo CharSequence[]. Solo se permiten valores int convertibles o constantes de enumeración

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();

preguntado el 29 de junio de 12 a las 19:06

2 Respuestas

¿Usar cadenas en una caja de interruptor para un menú?

Las cadenas en las declaraciones de cambio se agregaron en Java 7. Para ver un ejemplo, eche un vistazo aquí. Dado que el desarrollo de Android no se basa actualmente en la sintaxis de Java 7, tendrá que ir por la ruta alternativa. Y eso significa: sentencias if-else. No son los más bonitos, pero harán el trabajo.

así que puedes intentarlo

 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

contestado el 23 de mayo de 17 a las 12:05

Android ejecuta JRE 6. Si no me equivoco. No se permitió realizar un cambio (CharSequence []) y un cambio (String) hasta JRE 7, que salió este año. Tendrá que hacer una serie de sentencias if else para evitar esto.

Respondido el 29 de junio de 12 a las 20:06

No es la respuesta que estás buscando? Examinar otras preguntas etiquetadas or haz tu propia pregunta.