2013-04-23 3 views
0

사용자가 옵션을 선택할 수있는 경고 대화 상자를 열려고 시도하지만 옵션 메뉴 항목에서 대화 상자가 열립니다. 옵션 항목 및 대화 상자 코드에 대한 코드가 포함되었습니다. 옵션 메뉴 항목을 사용하여 대화 상자를 열려고 시도했습니다.

public void OnOptionsItemSelected(MenuItem item) { 
     switch (item.getItemId()) { 
     case SECTION: 
      showDialogMenu(); 
      new DialogInterface.OnClickListener(){ 
       @Override 
       public void onClick(DialogInterface dialog, int item) { 
        showDialogMenu(); 
        Log.d("Dialog used.","here"); 
       } 
      }; break; 
     } 
    } 


public void showDialogMenu(){ 
    Log.d("showDialogMenu()", "Method was called."); 
    AlertDialog.Builder builder = new AlertDialog.Builder(this); 
    builder.setTitle(R.string.dialogueTitle); 
    builder.setPositiveButton("Melee", new DialogInterface.OnClickListener(){ 
     @Override 
     public void onClick(DialogInterface dialog, int item) { 
      num=0; 
      whichImage(num); 
     } 
    }); 
    builder.setPositiveButton("Pistols", new DialogInterface.OnClickListener(){ 
     @Override 
     public void onClick(DialogInterface dialog, int item) { 
      num=27; 
      whichImage(num); 
     } 
    }); 
    builder.setPositiveButton("Shotguns", new DialogInterface.OnClickListener(){ 
     @Override 
     public void onClick(DialogInterface dialog, int item) { 
      num=38; 
      whichImage(num); 
     } 
    }); 
    builder.setPositiveButton("Rifles", new DialogInterface.OnClickListener(){ 
     @Override 
     public void onClick(DialogInterface dialog, int item) { 
      num=43; 
      whichImage(num); 
     } 
    }); 
    builder.setPositiveButton("Sub-Machine Guns", new DialogInterface.OnClickListener(){ 
     @Override 
     public void onClick(DialogInterface dialog, int item) { 
      num=58; 
      whichImage(num); 
     } 
    }); 
    builder.setPositiveButton("Light Machine Guns", new DialogInterface.OnClickListener(){ 
     @Override 
     public void onClick(DialogInterface dialog, int item) { 
      num=68; 
      whichImage(num); 
     } 
    }); 
    builder.setPositiveButton("Sniper Rifles", new DialogInterface.OnClickListener(){ 
     @Override 
     public void onClick(DialogInterface dialog, int item) { 
      num=72; 
      whichImage(num); 
     } 
    }); 
    builder.show(); 
} 

내가 대화를위한 쇼() 메소드를 가지고 확인했다, 그 전에 문제라고 생각하지만, 메뉴 항목을 클릭하면, 아무것도 온다 없습니다. 어떤 도움이라도 대단히 감사하겠습니다.

답변

0

쉬운 친구 ... 아무도 당신이 어리 석다 고 생각하지 않습니다. 나는 SECTION가 무엇인지 모르지만 당신은 무엇에 당신이 그래서 여기에 외부에서 showDialog() 방법을 이동하여 onOptionsItemSelected()

public void OnOptionsItemSelected(MenuItem item) { 
    switch (item.getItemId()) { 
    case R.id.MyItem: 
     showDialogMenu(); 
     break; 

<item android:id="MyItem" 

다음 메뉴 XML의 ID를 준 변경해야 resuable 수 있습니다. 기회는 당신이 당신의 현재 문제를 도움이 될 것입니다 어떤 점

에서 더 많은 항목을 추가 할 것입니다 때문에

public void showDialogMenu(){ 
       Log.d("Dialog used.","here"); 
      } 

그것의 벌금 여기 switch/case를 사용합니다. 그러나 무엇을하고 있는지에 대해 MultiChoice Dialog을 사용하여 확인하고 싶을 것입니다.

관련 문제