Android Studio基礎-上下文菜單兩種實現方式舉例

2021-01-10 騰訊網

1.MainActivity演示用java代碼add()實現上下文菜單

2.SeccondActivity演示用XML配置方式實現上下文菜單,用按鈕跳轉到這個Activity

在Android應用程式中菜單是用戶界面中最常見的元素之一,使用非常頻繁。通常Android應用程式中的菜單默認是不可見的,只有當用戶單擊手機上的「Menu」鍵,系統才會顯示該應用關聯的菜單。所以一般的Android系統的手機都要有一個"Menu"鍵。Android主要有兩種菜單:選項菜單(OptionsMenu)和上下文菜單(Context Menu)。

上下文菜單(Context Menu)只作用於某一選項,相當於window系統中的「右鍵單擊」彈出的菜單。當用戶一直按住(Touch&Hold)某個應用的界面控制項時才會彈出此菜單,而使用物理按鍵時無法調用此功能。

Android提供了兩種創建菜單的方法,一種是在java代碼中創建,另一種是使用xml資源文件定義

一、效果圖:

二、用JAVA的add方法實現上下文菜單

頁面布局:

MainActivity代碼實現

public class MainActivity extends Activity {

@Override

protected void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.activity_main);

TextView tv=findViewById(R.id.tv);

this.registerForContextMenu(tv);

Button mybutton=findViewById(R.id.button1);

mybutton.setOnClickListener(new View.OnClickListener() {

@Override

public void onClick(View view) {

Intent intent=new Intent();

intent.setClass(MainActivity.this,SecondActivity.class);

startActivity(intent);

}

});

}

@Override

public void onCreateContextMenu(ContextMenu menu, View v, ContextMenu.ContextMenuInfo menuInfo) {

super.onCreateContextMenu(menu, v, menuInfo);

menu.add(0,0, Menu.NONE,"發送");

menu.add(0,1, Menu.NONE,"標記為重要");

menu.add(0,2, Menu.NONE,"重命名");

menu.add(0,3, Menu.NONE,"刪除");

}

@Override

public boolean onContextItemSelected(MenuItem item) {

switch (item.getItemId())

{

case 0:Toast.makeText(this,"發送事件",Toast.LENGTH_SHORT).show();

break;

case 1:Toast.makeText(this,"標記為重要事件",Toast.LENGTH_SHORT).show();

break;

case 2:Toast.makeText(this,"重命名事件",Toast.LENGTH_SHORT).show();

break;

case 3:Toast.makeText(this,"刪除事件",Toast.LENGTH_SHORT).show();

break;

}

return super.onContextItemSelected(item);

}

}

三、用JAVA的XML配置方法方法實現上下文菜單

菜單資源:

右鍵:

new->Directory,命名為menu

在menu下,new->menu resourse file,命名為contextmenu.xml

頁面布局:

SecondActivity 代碼實現:

public class SecondActivity extends Activity {

@Override

protected void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.activity_second);

TextView tv=findViewById(R.id.tv);

this.registerForContextMenu(tv);

}

@Override

public void onCreateContextMenu(ContextMenu menu, View v, ContextMenu.ContextMenuInfo menuInfo) {

super.onCreateContextMenu(menu, v, menuInfo);

this.getMenuInflater().inflate(R.menu.contextmenu,menu);

menu.setHeaderIcon(R.mipmap.ic_launcher);

menu.setHeaderTitle("上下文菜單舉例");

}

@Override

public boolean onContextItemSelected(MenuItem item) {

switch (item.getItemId())

{

case R.id.send:Toast.makeText(this,"發送事件",Toast.LENGTH_SHORT).show();

break;

case R.id.important:Toast.makeText(this,"標記為重要事件",Toast.LENGTH_SHORT).show();

break;

case R.id.rename:Toast.makeText(this,"重命名事件",Toast.LENGTH_SHORT).show();

break;

case R.id.delete:Toast.makeText(this,"刪除事件",Toast.LENGTH_SHORT).show();

break;

}

return super.onContextItemSelected(item);

}

}

相關焦點

  • Android Studio基礎-選項菜單Java實現實例
    Android主要有兩種菜單:選項菜單(OptionsMenu)和上下文菜單(Context Menu)。 選項菜單(Options Menu)作用於全局界面。點擊「Menu」鍵彈出菜單,應用程式中將較少使用的命令放入此菜單中,或者界面中信息密度多大,部分命令無法完全顯示時,可對選項菜單加以利用。使用觸控螢幕無法調用此功能。
  • 谷歌Android Studio Arctic Fox (2020.3.1) 預覽版發布,附更新內容
    版本說明 https://developer.android.google.cn/studio/releases對於那些嘗試使用 Jetpack Compose 的用戶,我們提供了大量更新內容,例如將 @Preview Composable 部署到設備 / 模擬器 :Jetpack Composehttps:/
  • Android - android xml 層級專題及常見問題 - CSDN
    它們被保存在res/layout/文件夾下,通過R.layout類訪問menu/定義應用程式菜單的XML文件,如選項菜單,上下文菜單,子菜單等。它們被保存在res/menu/文件夾下,通過R.menu類訪問raw/任意的文件以它們的原始形式保存。
  • Android Studio 4.0 發布
    現在還可以使用導航快捷方式輕鬆移動數據進行精細的縮放和平移,比如使用 W/A/S/D 鍵操作。除了以上介紹的更新內容,Android Studio 4 還初步支持了 Kotlin DSL 腳本文件、為 C++ 開發啟用了 clangd 作為主要的語言分析引擎,以及其它一系列改進,詳情可以查看發布公告:https://android-developers.googleblog.com/2020/05/android-studio
  • 谷歌Android Studio 和 Gradle 插件使用全新版本編號
    Android Studio 的新版本編號方案IT之家獲悉,從 Arctic Fox (2020.3.1) 開始,Android Studio 的版本號系統將以年份為基礎,從而更加符合 IntelliJ IDEA 的版本模式——Android Studio 正是基於這個 IDE 構建的。
  • 谷歌:Android Studio 和 Gradle 插件使用全新版本編號
    Android Studio 的新版本編號方案IT之家獲悉,從 Arctic Fox (2020.3.1) 開始,Android Studio 的版本號系統將以年份為基礎,從而更加符合 IntelliJ IDEA 的版本模式——Android Studio 正是基於這個 IDE 構建的。
  • 開源之系統:非終端命令,Ubuntu中去官網下載安裝Android Studio
    而這次我們開始安裝Android studio用以開發Android應用APP。我們打開官網,找到下載的頁面。就能找到down Android Studio的綠色按鈕,下面是版本的字樣,機智客這裡下載的是4.1.1 for Linux 64-bit (883 MB)。然後點擊下載,彈窗一個頁面,需要閱讀並同意相關協議。同樣有一個下載按鈕,上面有:適用平臺:Linux 的字樣。
  • 谷歌Android Studio Arctic Fox預覽版發布 共200多處質量改進
    版本說明 https://developer.android.google.cn/studio/releases對於那些嘗試使用 Jetpack Compose 的用戶,我們提供了大量更新內容,例如將 @Preview Composable 部署到設備 / 模擬器 :
  • 谷歌Android Studio 4.0 發布:新的 Motion 編輯器
    現在還可以使用導航快捷方式輕鬆移動數據進行精細的縮放和平移,比如使用 W/A/S/D 鍵操作。此外系統跟蹤 UI 重新進行了設計,事件具有獨特的顏色以在視覺上有更好的區分。線程被排序以首先顯示較忙的線程。
  • 在Android 中,使用簡單的幾行代碼實現複雜、漂亮的動畫
    例如不斷設置 View 的 scaleX 屬性,就能實現 View 在 X 軸縮放的效果。屬性動畫有很多種實現方式,簡單的動畫使用 ObjectAnimator 就可以滿足,複雜一些的使用 ValueAnimator 結合 AnimatorSet 或 PropertyValuesHolder 使用就可以做出比較漂亮的動畫。
  • 「cookpad studio」聯名《食戟之靈》與《中華小當家》推出原創菜單
    動漫《食戟之靈神之皿》與《中華小當家》將於「cookpad studio食神祭」活動中聯名,10月7日起於cookpad studio心齋橋店提供創意餐點。cookpad studio 是一間可以讓客人觀看廚師烹飪合作餐點的實況影片、一邊享用特別菜單,還可以購買限定商品的體驗型攝影棚。
  • App安全檢測實踐基礎——工具
    那麼在實際檢測該漏洞的時候,可以利用工具逆向、掃描原始碼進行分析,查看代碼在關鍵位置是否進行了一些報警,如toast。adb工具簡介adb是Android的一個很重要的調試工具,熟練掌握後可實現很多功能,比如有些手機的解鎖、ROOT就會用到adb工具安裝過程
  • Chrome for Android情境菜單已可將網頁圖像複製到剪貼板
    好消息是,Chromium 開發團隊終於回過神來,在新版中引入了可根據上下文情境來提供「複製圖像」的選項。感興趣的朋友,可在瀏覽器中啟用「context menu copy image」這個標記,然後就可以通過長按圖片來激活該功能了。
  • DDD - 辨別限界上下文的協作關係
    SaleOrder 領域模型的依賴,然而,這種實現並不可取。存在兩種設計決策:在訂單上下文中重用商品上下文的領域模型,即兩個限界上下文之間採用遵奉者模式,且商品上下文作為上遊。在訂單上下文中定義屬於自己的與 Product 有關的領域模型。
  • android開發 自我優勢 - CSDN
    自我評價(案例二)Java基礎牢固,線程,集合, IO流, tcp/udp基礎網絡,基礎算法 等操作熟練熟練使用Android studio ,eclipse, postman,markdonw, wireshark等工具熟練掌握Android各項基本開發技能,如普通界面繪製,資料庫,各類原生組件,各類原生服務,生命周期等等熟練掌握
  • Android 與 iOS 共用一套代碼?Netflix 是如何實現
    時至今日,實體生產的具體方式可謂日新月異,不同國家、地區甚至是不同生產體系之間都存在著巨大的方法與需求層面的差異。工作性質的變化,意味著我們需要在分布式環境中的設備上開發出高寫入強度軟體,其中約三分之一用戶的網絡連接條件並不穩定,容錯能力也相當有限。作為一支小型工程團隊,我們意識到必須對可靠性及產品交付速度進行優化,才能滿足不斷變化的客戶需求。
  • Java中的上下文驗證
    在這裡,我們將考慮執行驗證的不同方法,什麼是上下文驗證以及為什麼它勝過所有其他方法。綁定到數據模型的上下文無關的驗證當前大多數框架都迫使我們及其用戶將驗證放入數據模型中。至少對於我們大多數人來說,默認模式是將驗證規則簡單地綁定到數據模型中的特定欄位。這種方法有什麼問題?
  • Android Spinner下拉框的基本使用
    默認情況下Spinner顯示的是當前選擇的值,點擊Spinner會彈出一個包含所有可選值的dropdown菜單,從該菜單中可以為Spinner選擇一個新值。;java </item><item>php</item><item>xml</item><item>html</item></string-array>4、在布局文件xml的Spinner下添加:android
  • Transformers 長程上下文綜述
    稀疏Transformer通過利用固定注意力模式的自定義核來實現這一目標。固定的稀疏Transformer。深藍色方塊代表查詢,中淺藍色方塊代表奇數層注意力鍵索引,最淺藍色的方塊代表偶數層關注的關鍵索引。一半的頭只關注短的局部上下文,而另一半則預分配均勻分布在整個序列中的索引。
  • 「原型設計」如何利用Axure實現下拉子菜單?
    本文介紹如何透過這款工具實現下拉子菜單功能的原型設計。在本次的下拉子菜單功能實現中,我們主要用到了動態面板(當然不用動態面板也能實現,只是效果和效率上沒有那麼好),動態面板是Axure中的一款高級組件,可以有效幫助我們實現隱藏/顯示、滑動、拖動、狀態切換等效果。