0
我在我的Android項目問題試圖使一個選項菜單。的Android MenuItem.getItemId返回整數值
當我調試/執行我的應用程序並點擊菜單按鈕時,ALWAYS 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事件:
/**
* 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 { 公共靜態最終詮釋btnInfo = 0x7f060007; public static final int btnSimulate = 0x7f060003; 正確的代碼將是: /** * 點擊選項菜單按鈕, */ ... 開關(item.getItemId()){ 情況:0x7f060007 //待辦事項: ... ??? 是......真的很奇怪。我想,I'm有點糊塗的xD 我所要做的使用情況:情況R.id.btnInfo和BUTTOM的標識? Thx !! – unairoldan
您的代碼已經正確。 'case R.id.btnInfo',表示如果你的btnInfo被按下,運行那段代碼。你的代碼很好! – Ricky
當您添加/刪除ID時,生成的數字將會改變,因此從生成的變量(R.xxx.xxxx)中引用它 - 您在問題中發佈的代碼是正確的 – FunkTheMonk