1

대화 상자 단편의 요소 중 하나를 누를 때 팝업 메뉴를 열려고하는데 메뉴 항목 중 하나를 눌러도 onOptionsItemSelected 메소드가 호출되지 않습니다. 문제를 해결하려면 어떻게해야합니까?PopupMenu에서 onOptionsItemSelected가 호출되지 않았습니다.

enter image description hereenter image description here

public class AddSongDialogFragment extends DialogFragment implements View.OnClickListener { 

private TextView genreTextview; 

@Override 
public View onCreateView(LayoutInflater inflater, ViewGroup container, 
         Bundle savedInstanceState) { 
    View view = inflater.inflate(R.layout.addsong_layout, container); 
    //... 
    genreTextview = (TextView) view.findViewById(R.id.genreTextView); 
    view.findViewById(R.id.ll_genre_menu).setOnClickListener(this); 
    genreTextview.setText(R.string.press_to_choose_genre); 
    return view; 
} 

//... 

public void onClick(View v){ 
    switch(v.getId()) { 
     case R.id.button2: 
      dismiss(); 
      mListener.onChoose(); 
      break; 
     case R.id.ll_genre_menu: 
      PopupMenu popup = new PopupMenu(getContext(), v); 
      MenuInflater inflater = popup.getMenuInflater(); 
      inflater.inflate(R.menu.song_genres, popup.getMenu()); 
      popup.show(); 
      break; 
    } 
} 

@Override 
public boolean onOptionsItemSelected(MenuItem item) { 
    genreTextview.setText(item.getTitle()); 
    Log.d("songo", "item selected"); 
    return true; 
} 

song_genres.xml

<?xml version="1.0" encoding="utf-8"?> 
<menu xmlns:android="http://schemas.android.com/apk/res/android"> 
    <item android:id="@+id/pop" 
     android:title="@string/pop"/> 
    <item android:id="@+id/rock" 
     android:title="@string/rock" /> 
    ... 
</menu> 

답변

2

당신은 그것을 될 것 popup

에 대한 setOnMenuItemClickListener(PopupMenu.OnMenuItemClickListener listener)을 설정해야합니다 같은

아래
관련 문제