0

2 つの項目を含む警告ダイアログをユーザーに提示しています。両方の項目に OnClickListener を実装したいと考えています。1 つの項目を設定できますが、switch ステートメントを使用しようとすると、次のエラーが発生します。

タイプ CharSequence[] の値をオンにすることはできません。変換可能な int 値または enum 定数のみが許可されます

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

2 に答える 2

0

Android は JRE 6 を実行します。switch(CharSequence[]) と switch(String) の実行は、今年リリースされた JRE 7 まで許可されていませんでした。これを回避するには、一連の if else ステートメントを実行する必要があります。

于 2012-06-29T19:03:03.120 に答える
0

メニューのスイッチケースで文字列を使用していますか?

switch ステートメントの文字列は Java 7 で追加されました。例については、こちらをご覧ください。現在、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

于 2012-06-29T19:09:51.143 に答える