Android MenuItem 自定義長按事件的實(shí)現(xiàn)
會(huì)出現(xiàn)一個(gè)Toast來提示Menu的名字,比如下圖的更多。

有的時(shí)候我們不需要這個(gè)Toast,或者說長按MenuItem的時(shí)候需要做一些其他的事情,該怎么辦呢?
實(shí)現(xiàn)過程
首先我們先獲取該MenuItem的View:
View menu_more = findViewById(R.id.menu_more);
然后給它設(shè)置一個(gè)長按監(jiān)聽器:
menu_more.setOnLongClickListener(new View.OnLongClickListener() {
@Override
public boolean onLongClick(View v) {
// TODO: Implement this method
return true;
}
});
在這個(gè)監(jiān)聽器中什么也不做,你會(huì)發(fā)現(xiàn),長按MenuItem的Toast消失了!這時(shí),長按還會(huì)有一個(gè)短振動(dòng),如果不需要振動(dòng),可以更改上方代碼中return true;為return false;就可以了。當(dāng)然,如果你有別的需求,都可以在監(jiān)聽器中實(shí)現(xiàn)。
注意事項(xiàng)
獲取MenuItem的View需要在Menu創(chuàng)建之后才能獲取,因此我們不能把代碼寫在onCreate()方法中,需要寫在
onCreateOptionsMenu()方法中。另外,這段代碼要放到新線程中處理才會(huì)生效。
相關(guān)代碼
MainActivity相關(guān)代碼:
@Override
public boolean onCreateOptionsMenu(Menu menu){
MenuInflater inflater=getMenuInflater();
inflater.inflate(R.menu.menu_main,menu);
new Handler().post(new Runnable(){
@Override
public void run(){
View menu_more=findViewById(R.id.menu_more);
menu_more.setOnLongClickListener(new View.OnLongClickListener(){
@Override
public boolean onLongClick(View v){
// TODO: Implement this method
return true;
}
});
}
});
return true;
}
以上就是本文的全部內(nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
Android中系統(tǒng)默認(rèn)輸入法設(shè)置的方法(輸入法的顯示和隱藏)
這篇文章主要介紹了Android中系統(tǒng)默認(rèn)輸入法設(shè)置的方法(輸入法的顯示和隱藏)的相關(guān)資料,需要的朋友可以參考下2016-01-01
android控件實(shí)現(xiàn)多張圖片漸變切換
這篇文章主要為大家詳細(xì)介紹了android控件實(shí)現(xiàn)多張圖片漸變切換,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2018-08-08
Android編程實(shí)現(xiàn)自定義toast示例
這篇文章主要介紹了Android編程實(shí)現(xiàn)自定義toast,結(jié)合簡單實(shí)例形式分析了自定義布局toast核心實(shí)現(xiàn)技巧,具有一定參考借鑒價(jià)值,需要的朋友可以參考下2017-01-01
詳解Flutter如何繪制曲線,折線圖及波浪動(dòng)效
這篇文章主要為大家介紹線條類圖形的繪制(正弦曲線、折線圖),并且結(jié)合 Animation 實(shí)現(xiàn)了常見的波浪動(dòng)效,感興趣的小伙伴可以了解一下2022-03-03
Android中實(shí)現(xiàn)用命令行同步網(wǎng)絡(luò)時(shí)間
這篇文章主要介紹了Android中實(shí)現(xiàn)用命令行同步網(wǎng)絡(luò)時(shí)間,本文講解使用BusyBox實(shí)現(xiàn)同步網(wǎng)絡(luò)時(shí)間,并給出了詳細(xì)操作步驟,需要的朋友可以參考下2015-07-07

