android - Menu的click監(jiān)聽器可以使用switch()case來匹配具體點擊的Item嗎?
問題描述
自定義的一個菜單組件,想對里面的item設置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來匹配,但一時間想不起來應該怎么設置匹配方式。對于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) 你在方法里面根據(jù) itemId 來進行判斷就可以了。
相關文章:
1. 查詢mysql數(shù)據(jù)庫中指定表指定日期的數(shù)據(jù)?有詳細2. mysql - 怎么生成這個sql表?3. mysql儲存json錯誤4. php - 公眾號文章底部的小程序二維碼如何統(tǒng)計?5. mysql - 表名稱前綴到底有啥用?6. mysql - 數(shù)據(jù)庫表中,兩個表互為外鍵參考如何解決7. Navicat for mysql 中以json格式儲存的數(shù)據(jù)存在大量反斜杠,如何去除?8. 在mybatis使用mysql的ON DUPLICATE KEY UPDATE語法實現(xiàn)存在即更新應該使用哪個標簽?9. mysql - 數(shù)據(jù)庫建字段,默認值空和empty string有什么區(qū)別 11010. sql語句 - 如何在mysql中批量添加用戶?
