0
Android 프로젝트에서 옵션 메뉴를 만들 때 문제가 있습니다.Android MenuItem.getItemId가 정수 값을 반환합니다.
내 앱을 디버그/실행하고 메뉴 버튼을 클릭하면 R.id.btnInfo 속성이 메뉴 항목 id (btnInfo)가 아닌 정수를 반환합니다.
메뉴 선언 :
<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android">
<item android:id="@+id/btnInfo"
android:title="@string/btnInfo"
android:icon="@drawable/ic_info" />
</menu>
로드 메뉴 :
/**
* Options Menu Inflater Event
*/
@Override
public boolean onCreateOptionsMenu(Menu menu) {
MenuInflater inflater = getMenuInflater();
inflater.inflate(R.menu.options, menu);
return true;
}
클릭 이벤트 :
/**
* Click on Options Menu Button
*/
@Override
public boolean onOptionsItemSelected(MenuItem item) {
switch (item.getItemId()) {
case R.id.btnInfo:
// To-do:
return true;
default:
return super.onOptionsItemSelected(item);
}
}
그래서 ....이 내 R.java 경우 : 공공 정적 최종 클래스 ID { 공공 정적 최종 INT btnInfo = 0x7f060007; 공공 정적 final int btnSimulate = 0x7f060003; 올바른 코드는 다음과 같습니다 /** * 옵션 메뉴 버튼을 클릭 */ ... 스위치 (item.getItemId()) { 경우 : 0x7f060007 // 할 일 : ... ??? 정말 이상합니다. 나는 약간 혼란 스럽다고 생각한다 xD 나는 어떻게해야 할까? : R.id.btnInfo와 buttom의 이드? Thx !! – unairoldan
올바른 코드가 이미 있습니다. 'case R.id.btnInfo'는 btnInfo가 눌러 진 경우 해당 코드를 실행 함을 의미합니다. 귀하의 코드는 괜찮습니다! – Ricky
생성 된 변수 (R.xxx.xxxx)에서 ID를 추가/제거 할 때 생성 된 숫자가 변경됩니다. 질문에 게시 한 코드가 올바른 경우 – FunkTheMonk