android - Menu的click監(jiān)聽器可以使用switch()case來(lái)匹配具體點(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來(lái)匹配,但一時(shí)間想不起來(lái)應(yīng)該怎么設(shè)置匹配方式。對(duì)于button這類有綁定view的可以使用view.getId()來(lái)匹配,但這種自定義的應(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()來(lái)判斷了。
回答2:menu 的點(diǎn)擊事件 復(fù)寫這個(gè)方法 onOptionsItemSelected(MenuItem item) 你在方法里面根據(jù) itemId 來(lái)進(jìn)行判斷就可以了。
相關(guān)文章:
1. javascript - immutable配合react提升性能?2. 如何設(shè)置一個(gè)無(wú)限循環(huán)并打破它。(Java線程)3. DADB.class.php文件的代碼怎么寫4. javascript - sublime快鍵鍵問題5. php對(duì)mysql提取數(shù)據(jù)那種速度更快6. macos - 如何徹底刪除mac自帶的apache和php7. docker 17.03 怎么配置 registry mirror ?8. mysql事務(wù)回滾定位9. 實(shí)現(xiàn)bing搜索工具urlAPI提交10. css - 移動(dòng)端字體設(shè)置問題

網(wǎng)公網(wǎng)安備