API <11에 대한 Android invalidateOptionsMenu ()
내가 사용 ActivityCompat.invalidateOptionsMenu(MainActivity.this);
/를 ( "메뉴"옵션을 만지지 열어 사용자 잎에게 메뉴를 상상해야 사용하지 않고 사용할 수 ... 나는 자동으로 새로 고침에 '새로 고침'메뉴 항목을 필요로 내 메뉴 항목 "새로 고침"가 자동 으로 활성화 될 수 있도록 활성화).
는 ActivityCompat.invalidateOptionsMenu(MainActivity.this)
안드로이드 11 +에서 잘 작동합니다. 하지만 android API <11에 무엇을 사용할 수 있습니까? : S 검색을 많이했는데 답을 수 없습니다. 누구든지 이것에 대해 나를 도울 수 있습니까?
이는 Android API 11 이상에서 onPrepareOptionsMenu
및 ActivityCompat.invalidateOptionsMenu(MainActivity.this)
. 문제는 Android API <11에서 완료합니다.
내 onPrepareOptionsMenu
방법 은 다음과 가변 .
@Override
public boolean onPrepareOptionsMenu(Menu menu) {
if(menuRefreshEnable){
menu.getItem(0).setEnabled(true);
}
if(!menuRefreshEnable){
menu.getItem(0).setEnabled(false);
}
return true;
}
에 API < 11
사용 supportInvalidateOptionsMenu()
방법
ActivityCompat.invalidateOptionsMenu()
대신하지 않고 onPrepareOptionsMenu();
메뉴를 직접 업데이트합니다. 그냥 몇 개 더 Log.d()
직접 확인하십시오.
이것은 나를 위해 작동합니다 (API 8을 사용하고 있습니다).
private Menu mMenu;
@Override
public void onCreateOptionsMenu(Menu menu, MenuInflater inflater) {
inflater.inflate(R.menu.track_fragment, menu);
mMenu = menu;
}
...
private void someMethod() {
...
if (mMenu != null) {
MenuItem item = mMenu.findItem(R.id.new_track);
if (item != null) {
item.setVisible(false);
ActivityCompat.invalidateOptionsMenu(this.getActivity());
}
}
...
}
내 someMethod()
GET도 전에 여러 곳에서 호출을 onCreateOptionsMenu()
확인해야합니다 mMenu != null
.
API가 11 이상 지원되는 경우 true를 반환합니다. API 11 이전에는 메뉴 버튼을 눌렀을 때 메뉴가 그려 지거나 자동으로 사용이 방법이 필요하지 않습니다.
참고 URL : https://stackoverflow.com/questions/14008470/android-invalidateoptionsmenu-for-api-11
'ProgramingTip' 카테고리의 다른 글
(Retrofit) 클래스 충돌 앱에 대한 변환기를 수 없습니다. (0) | 2020.10.16 |
---|---|
Android Studio- 프로젝트 평가 리스너 오류를 알리지. (0) | 2020.10.16 |
Spring AOP : JoinPoint와 PointCut의 차이점은 무엇입니까? (0) | 2020.10.15 |
Bower : 2 가지 버전의 jQuery 설치 (0) | 2020.10.15 |
태그 (0) | 2020.10.15 |