한 번 열 : 안드로이드 4.1 메뉴에서OptionsMenu은 내가 팝업으로 optionsmenu를 열려면이 코드를 사용하고 안드로이드 4.1
@Override
public boolean onPrepareOptionsMenu(Menu menu){
openMenu();
return true;
}
private void openMenu(){
View popUpView = getLayoutInflater().inflate(R.layout.menu, null);
popUpMenu = new PopupWindow(popUpView, LayoutParams.FILL_PARENT
, LayoutParams.WRAP_CONTENT
, true);
popUpMenu.setBackgroundDrawable(new BitmapDrawable());
popUpMenu.setAnimationStyle(android.R.style.Animation_Dialog);
popUpMenu.showAtLocation(popUpView, Gravity.BOTTOM, 0, 0);
makePopUpMenuButtons(popUpView);
}
문제는, 그 한 번만 엽니 다. invalidateOptionsMenu()에 대한 내용을 읽었으나이 메서드를 어디서 구현해야할지 모르겠습니다. 또한 이클립스는 "invalidateOptionsMenu() 메서드가 정의되지 않았습니다."라고 말합니다.
누구든지 메뉴 버튼을 클릭 할 때마다 옵션 메뉴가 열리도록해야 할 일을 알고 있습니까?
편집 :
난 사용자 정의 디자인을 가지고 싶어서, 안드로이드 메뉴 객체를 사용하지 마십시오. 그것이 내가 onPrepareOptionsMenu에서 popop을 만드는 이유입니다. 그래서 나는 onOptionsItemSelected를 사용하지 않는다. 내 문제는 onPrepareOptionMenu는 첫 번째 클릭 이후에만 불규칙적으로 호출된다는 것입니다.
Android 3.0 이상에서는 메뉴 항목이 작업 표시 줄에 표시 될 때 옵션 메뉴가 항상 열려있는 것으로 간주됩니다. 이벤트가 발생하여 메뉴 업데이트를 수행하려면 invalidateOptionsMenu()를 호출하여 시스템 호출 onPrepareOptionsMenu()를 요청해야합니다.
이 단락은 내 API가 3.0 이상일 때 invalidateOptionsMenu를 호출해야한다고 말합니다. 하지만 내 프로젝트에서는 4.1보다 낮은 API로 모든 것이 잘 동작합니다.
있는지 모르겠어) onOptionsItemSelected() 또는 뭔가, 또는 적어도 우리에게 onOptionsItemSelected() 코드를 표시하십시오. – shkschneider
저는 onOptionsItemSelected()를 사용하지 않습니다. 제 편집 – bluerob