바인딩에 청취자 지정 메뉴에서 활동에서 안드로이드
-
20-12-2019 - |
문제
나는 새로운 안드로이드 개발.내가 원하는 모든 활동에는 동일한 사용자 정의 팝업 메뉴 오른쪽 상단에 있습니다.사용 LinearLayout 에 xxmenu.xml
와 그것을 포함한 각 활동의 레이아웃 xml 파일이 있습니다.디스플레이 좋습니다.로 OnClickListener
와 동일해야 합니다,나는 원하지 않을 구현하는 OnClick
기능에서 모든 활동의 자바일이다.이렇게 하려면 어떻게 해야 합니까?
내가 알고있는 고유한 메뉴를 통해 솔루션 OptionsMenu
, 지만,내가 알지 못하는 경우 주문을 받아서 만들어질 수 있습니다 또는 방법(예를들면,나는 그것에 topright 코너,서로 다른 배경으로,각 항목은 이미지의 아이콘이 다음 texts
, one-side shadow
, 등.)
해결책 2
첫째로,이 솔루션은 기본 클래스를 정의하(예를 들어, BaseActivity
는)확장 Activity
, 고,실제 활동을 사용하려면 이 메뉴 확장 BaseActivity
(예를 들어, MainActivity extends BaseActivity
).
두 번째 사용하여 별도의 xml 을 정의한 메뉴의 레이아웃에 포함 기타 레이아웃이 있습니다.간단한 방법으로 묶은 청취자를 사용하는 것입 android:onClick="toggleMenu"
.
셋째,구현 public void toggleMenu(View v)
에 BaseActivity.
우리는 또한 전화망 및 할 수 바인딩에서 자바 코드입니다.하지만 내가 만나는 코드 순서는 문제면 나를 얻을 클릭할 수 있는 보기를 통해 findViewById
에 BaseActivity
ko onCreate()
, 반환합니다 null
, 고 바인딩은 실패합니다.그래서를 찾는 의견하고 다음과 같은 바인딩을 수행해야에 아동 클래스(예를 들어, MainActivity
),를 호출한 후에 super.onCreate()
.
다른 팁
추상적이고 BaseActivity 를 구현하는 클래스 onCreateOptionsMenu
고 onOptionsItemSelected
에 대한 일반적인 메뉴 메뉴 항목이 있습니다.그런 다음 다른 모든 활동에서 확장하는 하나입니다.