【Android】操作功能表ContextMenu的使用

來源:互聯網
上載者:User

操作功能表

又稱長按菜單。當一個視圖註冊了操作功能表時,執行一個在該對象上長按(2秒)的動作,將出現一個具有相關功能的浮動菜單。

類概述

擴充自Menu的操作功能表提供了修改操作功能表頭(header)的功能。

操作功能表不支援功能表項目的捷徑和表徵圖。

公用方法public abstract void clearHeader ()清除操作功能表頭的資訊。(包括圖片和文字資訊)
public abstract ContextMenu setHeaderIcon (Drawable icon)
為操作功能表頭設定表徵圖

public abstract ContextMenu setHeaderIcon (int iconRes)
設定操作功能表頭表徵圖為指定的資源id

public abstract ContextMenu setHeaderTitle (int titleRes)
通過資源標識符為操作功能表頭的標題列設定文字。

public abstract ContextMenu setHeaderTitle (CharSequence title)
設定操作功能表的標題,顯示在標題列

public abstract ContextMenu setHeaderView (View view)
設定View 到操作功能表頭上。將替代操作功能表頭的表徵圖和標題(或者替代你之前設定的headerView)

程式碼範例當執行長按操作功能表時,大多數情況會調用registerForContextMenu(View) 函數和重寫執行onCreateContextMenu(ContextMenu, View, ContextMenu.ContextMenuInfo)函數。因為要建立一個操作功能表,你必須重寫這個活動的上下文回呼函數onCreateContextMenu() 並且 通過registerForContextMenu(View) 為其註冊操作功能表。
註冊操作功能表
registerForContextMenu(lv);//為ListView添加操作功能表
添加功能表項目
@Overridepublic void onCreateContextMenu(ContextMenu menu, View v,ContextMenuInfo menuInfo) {// TODO Auto-generated method stub        try {        AdapterContextMenuInfo info = (AdapterContextMenuInfo) menuInfo;               JSONObject object = mData.getJSONObject(info.position);            menu.setHeaderTitle(object.getString("title"));        } catch (Exception e) {            return;        }menu.add(0, 1, 0, "刪除該聊天");menu.add(0, 2, 0, "置頂聊天");super.onCreateContextMenu(menu, v, menuInfo);}@Overridepublic boolean onContextItemSelected(MenuItem item) {// TODO Auto-generated method stubAdapterContextMenuInfo itemInfo = (AdapterContextMenuInfo) item.getMenuInfo();try {JSONObject object = mData.getJSONObject(itemInfo.position);switch (item.getItemId()) {case 1:Toast.makeText(this, object.getString("title"), Toast.LENGTH_LONG).show();break;default:break;}} catch (JSONException e) {// TODO Auto-generated catch blocke.printStackTrace();}return super.onContextItemSelected(item);}



長按“姓名2”

點擊“刪除該聊天”

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.