android - Menu的click監(jiān)聽器可以使用switch()case來匹配具體點擊的Item嗎?
問題描述
自定義的一個菜單組件,想對里面的item設(shè)置click監(jiān)聽。
public class ResideMenuItem extends LinearLayout{}//自定義菜單項目private ResideMenuItem itemMusic;itemMusic = new ResideMenuItem(this,R.drawable.icon_home,'Music');itemMusic.setOnClickListener(this);
因為項目比較多,所以想用switch()case來匹配,但一時間想不起來應(yīng)該怎么設(shè)置匹配方式。對于button這類有綁定view的可以使用view.getId()來匹配,但這種自定義的應(yīng)該怎么設(shè)置呢。demo里用的是if (view == itemMusic){},但switch好像不行呢。
問題解答
回答1:View有setId(int id)方法,如
private ResideMenuItem itemMusic;itemMusic = new ResideMenuItem(this,R.drawable.icon_home,'Music');itemMusic.setId(0xff01);itemMusic.setOnClickListener(this);
這樣你就可以在switch里使用view.getId()來判斷了。
回答2:menu 的點擊事件 復(fù)寫這個方法 onOptionsItemSelected(MenuItem item) 你在方法里面根據(jù) itemId 來進行判斷就可以了。
相關(guān)文章:
1. html5 - 只用CSS如何實現(xiàn)input框的寬度隨框里輸入的內(nèi)容長短自動適應(yīng)?2. 在應(yīng)用配置文件 app.php 中找不到’route_check_cache’配置項3. javascript - 給頁面加了動畫,在微信瀏覽器中顯示混亂,急救4. css3 - h5單頁滾動的圖尺寸問題5. 老師,layui.css無法使用,路徑都是按照視頻照做的,是不是還有其他步驟需要做?6. javascript - vue 獲取json數(shù)據(jù)的某個屬性成功,卻報錯7. phpadmin的數(shù)據(jù)庫,可以設(shè)置自動變化時間的變量嗎?就是不需要接收時間數(shù)據(jù),自動變化8. css3動畫 - CSS3 transition動畫屬性指定前后問題9. 關(guān)于canvas畫圖和css3動畫的腦洞10. 調(diào)用百度翻譯API,在JAVA項目可以翻譯,在android中卻不行。求助