android - Menu的click監聽器可以使用switch()case來匹配具體點擊的Item嗎?
問題描述
自定義的一個菜單組件,想對里面的item設置click監聽。
public class ResideMenuItem extends LinearLayout{}//自定義菜單項目private ResideMenuItem itemMusic;itemMusic = new ResideMenuItem(this,R.drawable.icon_home,'Music');itemMusic.setOnClickListener(this);
因為項目比較多,所以想用switch()case來匹配,但一時間想不起來應該怎么設置匹配方式。對于button這類有綁定view的可以使用view.getId()來匹配,但這種自定義的應該怎么設置呢。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 的點擊事件 復寫這個方法 onOptionsItemSelected(MenuItem item) 你在方法里面根據 itemId 來進行判斷就可以了。
相關文章:
1. angular.js - 輸入郵箱地址之后, 如何使其自動在末尾添加分號?2. javascript - JS 里面的 delete object.key 到底刪除了什么?3. mysql - 電商如何存儲營業額數據4. javascript - 后臺管理系統左側折疊導航欄數據較多,怎么樣直接通過搜索去定位到具體某一個菜單項位置,并展開當前菜單5. 管理員信息修改時的密碼問題6. android - RxJava 中有根據條件執行不同函數的操作符嗎?7. javascript - html5的data屬性怎么指定一個function函數呢?8. java如何生成token?9. javascript - 如何使用nodejs 將.html 文件轉化成canvas10. html5 - 為什么使使用vue cli 腳手架,post-css 沒有自動對css3屬性自動添加瀏覽器前綴呢?
