2013-01-23 1 views
1

터치했을 때 다른 항목 목록이 열리는 항목 목록을 갖기 위해 노력하고 있습니다. 오히려 항목의 하위 메뉴처럼. 내 첫 번째 목록이 길어지고 일부를 하위 메뉴로 그룹화하고 싶기 때문입니다.AlertDialog.Builder setItems list with another

gridView.setOnItemClickListener(new OnItemClickListener() { 
     public void onItemClick(AdapterView<?> parent, View v, final int position, long id) { 

      final CharSequence[] items = {"Gallery Image Menu", "View pattern", "Delete pattern", "Locate pattern in list view", "Row Counter (with pattern)", "Share Pattern", "Share Image", "Cancel"}; 

      AlertDialog.Builder builder = new AlertDialog.Builder(grid.this); 
      builder.setTitle(selectedimage); 
      builder.setItems(items, new DialogInterface.OnClickListener() { 
       public void onClick(DialogInterface dialog, int item) { 


        if (item == 0){ 
         //first menu 1st item 
         dialog.dismiss(); 

         final CharSequence[] items2 = {"Rotate image 180"+"\u00B0", "Rotate image 90"+"\u00B0", "Add image from pattern", "Add image from file", "Add image from camera", "Remove image", "Cancel"}; 

         final AlertDialog.Builder builder2 = new AlertDialog.Builder(grid.this); 
         builder2.setTitle(selectedimage); 
         builder2.setItems(items2, new DialogInterface.OnClickListener() { 
          public void onClick(DialogInterface dialog2, int item) { 


           if(item == 0){ 
            //2nd menu, 1st item 
            dialog2.dismiss(); 

            //do something 
            return; 
           } 

           if(item == 1){ 
            dialog2.dismiss(); 
            //2nd menu, 2nd item 
            //do something else 
            return; 
           } 


          AlertDialog alert2 = builder2.create(); 
          alert2.show(); 

          } 
         }); 
        } 


        if (item == 1){ 
         //first menu 2nd item 
        } 


        if(item == 2){ 
         //1st menu, 3rd item 
        } 


        if(item == 3){ 

        } 

        //..... etc 


       } 
      }); 
      AlertDialog alert = builder.create(); 
      alert.show(); 


     } 

    });//gridView.setOnItemClickListener 

첫 번째 빌더 디스플레이는 예상하지만 나는 내가 활동 2 첫 번째 빌더가 종료 빌더 반환을 열려는 첫 번째 옵션을 선택하면.

디버그 모드에있을 때 두 번째 빌더 코드가 표시 될 것처럼 읽히지 만 둘 다 닫힙니다.

아마도이 작업을 수행 할 수 없습니까?

아이디어가 있으십니까?

답변

1

당신은

AlertDialog alert2 = builder2.create(); 
alert2.show(); 

부분을 잃어 버렸어요. 3 줄을 아래로 이동 후 });

+0

Ahh! 그 점을 지적 해 주셔서 감사합니다. – Mark