1. 程式人生 > >ActionBar(7)自定義的操作提供器

ActionBar(7)自定義的操作提供器

  當你想要建立一個有動態行為和在懸浮選單中有預設圖示的操作視窗時,繼承ActionProvider類來定義這些行為是一個比好的的方案。建立自己的操作提供器,提供一個有組織的可重用的元件,而不是在Fragment或Activity的程式碼中處理各種操作項的變換和行為。

       要建立自己的操作提供器,只需簡單的繼承ActionProvider類,並且實現合適的回撥方法。你應該實現以下重要的回撥方法:

ActionProvider()

      這個構造器把應用程式的Context物件傳遞個操作提供器,你應該把它儲存在一個成員變數中,以便其他的回撥方法使用。

OnCreateActionView()

       這是你給選單項定義操作視窗的地方。使用從構造器中接收的Context物件,獲取一個LayoutInflater物件的例項,並且用XML資源來填充操作視窗,然後註冊事件監聽器。如:

[java] view plaincopyprint?在CODE上檢視程式碼片派生到我的程式碼片
  1. public View onCreateActionView() {  
  2.     // Inflate the action view to be shown on the action bar.
  3.     LayoutInflater layoutInflater = LayoutInflater.from(mContext);  
  4.     View view = layoutInflater.inflate(R.layout.action_provider, null);  
  5.     ImageButton button = (ImageButton) view.findViewById(R.id.button);  
  6.     button.setOnClickListener(new View.OnClickListener() {  
  7.         @Override
  8.         publicvoid onClick(View v) {  
  9.             // Do something...
  10.         }  
  11.     });  
  12.     return view;  
  13. }  

onPerformDefaultAction()
         
在選中懸浮選單中的選單時,系統會呼叫這個方法,並且操作提供器應該這對這個選中的選單項執行預設的操作。

       但是,如果你的操作提供器提供了一個子選單,即使是懸浮選單中一個選單項的子選單,那麼也要通過onPrepareSubMenu()回撥方法來顯示子選單。這樣onPerformDefaultAction()在子選單顯示時就不會被呼叫。

       注意:實現了onOptionsItemSelected()回撥方法的Activity或Frament物件能夠通過處理item-selected事件(並且返回true)來覆蓋操作提供器的預設行為,這種情況下,系統不會呼叫onPerformDefaultAction()回撥方法。

相關推薦

ActionBar(7)定義操作提供

  當你想要建立一個有動態行為和在懸浮選單中有預設圖示的操作視窗時,繼承ActionProvider類來定義這些行為是一個比好的的方案。建立自己的操作提供器,提供一個有組織的可重用的元件,而不是在Fragment或Activity的程式碼中處理各種操作項的變換和行為。

Java類載入( CLassLoader ) 死磕7: 基於加密的定義網路載入 本小節目錄

【正文】Java類載入器(  CLassLoader ) 死磕7:  基於加密的自定義網路載入器 本小節目錄 7.1. 加密傳輸Server端的原始碼 7.2. 加密傳輸Client端的原始碼 7.3. 使用亦或實現簡單加密和解密演算法 7. 網路加密SafeClassLoader的原

netty使用msgpack定義編解碼實現序列化操作

匯入依賴 <dependency> <groupId>org.msgpack</groupId> <artifactId>msgpack</artifactId>

怎樣為std::map的定義key提供比較操作(一)

  stl的關聯容器(map,set)的key一般要求提供 < 比較操作。假設我們有一個結構SomeKey: struct SomeKey { int a, b; };   要想以SomeKey作為std::map的key,需要為這個結構提

ActionBar(6)操作提供ActionProvider及以ShareActionProvider演示

一.ActionProvider簡介 與操作視窗類似,操作提供器(由ActionProvider類定義的)用一個定製的佈局代替一個操作專案,它還需要對所有這些專案行為的控制。當你在操作欄中給一個選單項宣告一個操作專案時,它不僅要一個定製的佈局來控制這個選單項的外觀,而且

dedecmsV5.7定義圖片字段調用方法

類型 tmp lds dedecms blank www tpi java 解決方案 正常情況下,在列表頁(也就是 {dede:list}標簽)調用附加的圖片類型字段則會出現Fatal error: Call to a member function GetInnerTex

定義spring定時

() spl public == integer service upd imei second package com.wjz.quartz; import java.util.concurrent.Executors; public class QuartzDem

Spring定義屬性編輯

tex java block tom support bar white sim name bean類: [html] view plain copy package com.zm.bean; import java.util.Date; pu

flask第十一篇——定義url轉換

不可 edi quest img med 去掉 app 系統 pic 首先和大家說一下flask的組成,flask其實是werkzeug(路由和http處理)+SQLAlchemy(數據庫)+Jinja2(模板)組成的,今天我們要看到的東西就是`werkzeug`裏面的

SSM-SpringMVC-25:SpringMVC異常頂級之定義異常解析

post 程序猿 org instance value username 掃描 位置 服務器 ------------吾亦無他,唯手熟爾,謙卑若愚,好學若饑------------- 上篇博客相信大家也看到了,自定義異常,用了SimpleMappingExc

ASP.NET MVC 學習筆記-7.定義配置信息(後續)

字符串 return abstract 新的 work 生成 value DC 連接字符串加密 自定義配置信息的高級應用 通過上篇博文對簡單的自定義配置信息的學習,使得更加靈活的控制系統配置信息。實際項目中,這種配置的靈活度往往無法滿足項目的靈活度和擴展性。 比如,一個

Java類加載機制及定義加載

加載過程 ESS inf 無需 應用 null import def nds   一:ClassLoader類加載器,主要的作用是將class文件加載到jvm虛擬機中。jvm啟動的時候,並不是一次性加載所有的類,而是根據需要動態去加載類,主要分為隱式加載和顯示加載。   隱

定義超時驗證

日期和時間 inter EDA cto time() term move 比對 指定 應用場景 用來驗證操作是否大於最小時間間隔,如果大於則允許操作,不大於則不允許操作 1. ValidateOvertimeUtil.java package com.qfx.uti

定義Jquery選擇

如果當前jQuery內建的選擇器不夠用,開發人員也可以擴充套件jQuery,實現使用者自定義的選擇器。 如下面建立一個具有綠色背景元素的選擇器。 <script> $(function(){ // 通過擴充套件$.expr[":"]實現自定義選擇器 $.expr[":

SpringMVC自動封裝List物件——定義引數解析

  前臺傳遞的引數為集合物件時,後臺Controller希望用一個List集合接收資料。   原生SpringMVC是不支援,Controller引數定義為List型別時,接收引數會報如下錯誤: org.springframework.beans.BeanInstantiationException

10.3 Customizing Operations(定義操作)

10.3.2 Lambda Expression(匿名函式) #include <iostream> #include <algorithm> #include <vector> #include <string> #include <nu

spring boot 定義登入攔截

        最近在努力學習spring boot中,這裡記錄一下攔截器的相關知識,在spring boot中,寫一個自定義的攔截器類,用於攔截不通過登入之後而進行的非法訪問,攔截的操作,也是日常專案中,都要用到的,不多說了,看正文。   &n

Django分頁定義分頁

info tar trap 當前頁 quest res error: 封裝 HERE Django的分頁器 view from django.shortcuts import render,HttpResponse # Create your views here. f

ElasticSearch教程——定義分詞

ElasticSearch彙總請檢視:ElasticSearch教程——彙總篇 分詞器 Elasticsearch中,內建了很多分詞器(analyzers),例如standard (標準分詞器)、english(英文分詞)和chinese (中文分詞),預設的是sta

java類載入機制和定義類載入

類載入順序 上圖所示的是類載入的順序,按照大的順序可以分為載入、連結、初始化 其中連結又可以分成驗證、準備、解析三個步驟 載入 1.將類的class檔案讀入到記憶體中 載入類檔案的方式有: 1. 本機檔案載入 2.jar包載入 3.網路載入 4.原始檔動態編譯載入