android - Menu的click監(jiān)聽器可以使用switch()case來匹配具體點(diǎn)擊的Item嗎?
問題描述
自定義的一個(gè)菜單組件,想對(duì)里面的item設(shè)置click監(jiān)聽。
public class ResideMenuItem extends LinearLayout{}//自定義菜單項(xiàng)目private ResideMenuItem itemMusic;itemMusic = new ResideMenuItem(this,R.drawable.icon_home,'Music');itemMusic.setOnClickListener(this);
因?yàn)轫?xiàng)目比較多,所以想用switch()case來匹配,但一時(shí)間想不起來應(yīng)該怎么設(shè)置匹配方式。對(duì)于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 的點(diǎn)擊事件 復(fù)寫這個(gè)方法 onOptionsItemSelected(MenuItem item) 你在方法里面根據(jù) itemId 來進(jìn)行判斷就可以了。
相關(guān)文章:
1. 如何解決docker宿主機(jī)無法訪問容器中的服務(wù)?2. 請(qǐng)問關(guān)于 Java static 變量的問題?3. 跨類調(diào)用后,找不到方法4. 頁面用CSS3的scale屬性進(jìn)行了縮放,圖片模糊解決不了,那么字體能否讓它們不模糊呢?5. javascript - 微信IOS頁面中input type=number輸入數(shù)字無法顯示,安卓顯示正常6. 淺談vue生命周期共有幾個(gè)階段?分別是什么?7. javascript - 動(dòng)態(tài)添加路由報(bào)錯(cuò)8. ios - Crash Log 里關(guān)于微信SDK的問題9. javascript - hash為什么可以做路由跳轉(zhuǎn),不會(huì)刷新頁面10. $( "html" ).parent()方法返回一個(gè)包含document的集合,而$( "html" ).parents()返回一個(gè)空集合 哪位大神來解釋下?
