Android 實(shí)現(xiàn)長(zhǎng)按彈出PopupMenu 菜單欄
在Android中的SDK3.0版本以后加入了一個(gè)特殊的菜單效果,它可以在任何的View上顯示,根據(jù)View的位置顯示菜單效果。

res/menu/menu.xml
<?xml version="1.0" encoding="utf-8"?> <menu xmlns:android="http://schemas.android.com/apk/res/android"> <item android:id="@+id/send" android:title="發(fā)送郵件"></item> <item android:id="@+id/look" android:title="閱讀郵件"></item> <item android:id="@+id/delete" android:title="刪除郵件"></item> </menu>
MainActivity.java
package com.zhangyu.mypopupmenu;
import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;
import android.view.MenuItem;
import android.view.View;
import android.widget.PopupMenu;
import android.widget.TextView;
import android.widget.Toast;
public class MainActivity extends AppCompatActivity {
private TextView tv1;
private TextView tv2;
private TextView tv3;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
initView();
}
private void initView() {
tv1 = (TextView) findViewById(R.id.tv1);
tv2 = (TextView) findViewById(R.id.tv2);
tv3 = (TextView) findViewById(R.id.tv3);
tv1.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
myPopupMenu(v);
}
});
tv2.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
myPopupMenu(v);
}
});
tv3.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
myPopupMenu(v);
}
});
}
private void myPopupMenu(View v) {
//定義PopupMenu對(duì)象
PopupMenu popupMenu = new PopupMenu(MainActivity.this, v);
//設(shè)置PopupMenu對(duì)象的布局
popupMenu.getMenuInflater().inflate(R.menu.menu, popupMenu.getMenu());
//設(shè)置PopupMenu的點(diǎn)擊事件
popupMenu.setOnMenuItemClickListener(new PopupMenu.OnMenuItemClickListener() {
@Override
public boolean onMenuItemClick(MenuItem item) {
Toast.makeText(MainActivity.this, "點(diǎn)擊了----" + item.getTitle(), Toast.LENGTH_SHORT).show();
return true;
}
});
//顯示菜單
popupMenu.show();
}
}
總結(jié)
以上所述是小編給大家介紹的Android 實(shí)現(xiàn)長(zhǎng)按彈出PopupMenu 菜單欄,希望對(duì)大家有所幫助,如果大家有任何疑問請(qǐng)給我留言,小編會(huì)及時(shí)回復(fù)大家的。在此也非常感謝大家對(duì)腳本之家網(wǎng)站的支持!
如果你覺得本文對(duì)你有幫助,歡迎轉(zhuǎn)載,煩請(qǐng)注明出處,謝謝!
相關(guān)文章
Android移動(dòng)開發(fā)recycleView的頁(yè)面點(diǎn)擊跳轉(zhuǎn)設(shè)計(jì)實(shí)現(xiàn)
這篇文章主要介紹了Android移動(dòng)開發(fā)recycleView的頁(yè)面點(diǎn)擊跳轉(zhuǎn)設(shè)計(jì)實(shí)現(xiàn),有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2022-05-05
Android編程之點(diǎn)擊按鈕的響應(yīng)方式小結(jié)【3種方式】
這篇文章主要介紹了Android編程之點(diǎn)擊按鈕的響應(yīng)方式,結(jié)合實(shí)例形式分析總結(jié)了常用的三種按鈕響應(yīng)方式,需要的朋友可以參考下2017-02-02
Android 阿里云OSS文件上傳的實(shí)現(xiàn)示例
這篇文章主要介紹了Android 阿里云OSS文件上傳的實(shí)現(xiàn)示例,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2020-08-08
淺談Android Studio如何Debug對(duì)應(yīng)so文件C/C++代碼
本篇文章主要介紹了淺談Android Studio如何Debug對(duì)應(yīng)so文件C/C++代碼,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2017-12-12
Android中使用OkHttp包處理HTTP的get和post請(qǐng)求的方法
OkHttp包為安卓開發(fā)中的HTTP協(xié)議網(wǎng)絡(luò)編程帶來了很大的便利,這里我們就來看一下最基本的、Android中使用OkHttp包處理HTTP的get和post請(qǐng)求的方法:2016-07-07
Android大圖監(jiān)測(cè)系統(tǒng)的三種實(shí)現(xiàn)方式
在Android應(yīng)用中,大圖的加載和顯示可能導(dǎo)致內(nèi)存占用過高,進(jìn)而引發(fā)OOM(Out Of Memory)異常,影響應(yīng)用的穩(wěn)定性和用戶體驗(yàn),為了更好地管理大圖資源,我們需要建立起一套可靠的大圖監(jiān)測(cè)系統(tǒng),文中有詳細(xì)的代碼示例供大家參考,需要的朋友可以參考下2024-01-01
簡(jiǎn)單實(shí)現(xiàn)Android放大鏡效果
這篇文章主要教大家簡(jiǎn)單實(shí)現(xiàn)Android放大鏡效果,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2017-12-12

