Xamarin - 選單



彈出選單

彈出選單是指附加到檢視上的選單;它也稱為快捷選單。讓我們看看如何向 Android 應用程式新增彈出選單。

建立一個新專案並將其命名為popUpMenu App。開啟Main.axml並建立一個按鈕,該按鈕將用於顯示彈出選單。

<?xml version = "1.0" encoding = "utf-8"?> 
<LinearLayout xmlns:android = "http://schemas.android.com/apk/res/android" 
   android:orientation = "vertical" 
   android:background = "#d3d3d3" 
   android:layout_width = "fill_parent" 
   android:layout_height = "fill_parent"> 
   <Button 
      android:id = "@+id/popupButton" 
      android:layout_width = "fill_parent" 
      android:layout_height = "wrap_content" 
      android:text = "Show popup menu" 
      android:background = "@android:color/holo_green_dark" 
      android:textColor = "@android:color/black" /> 
</LinearLayout>

Resources資料夾下建立一個新資料夾,並將其命名為Menu。在 Menu 資料夾中,新增一個名為popMenu.xml的新 xml 檔案。

popMenu.xml中,新增以下選單項。

<?xml version = "1.0" encoding="utf-8"?> 
<menu xmlns:android = "http://schemas.android.com/apk/res/android"> 
   <item 
      android:id = "@+id/file_settings" 
      android:icon = "@drawable/img_settings" 
      android:title = "Settings" 
      android:showAsAction = "ifRoom"> 
     
      <item 
         android:id = "@+id/new_game1" 
         android:icon = "@drawable/imgNew" 
         android:title = "New File Settings"/> 
      <item 
         android:id = "@+id/help" 
         android:icon = "@drawable/img_help" 
         android:title = "Help" /> 
      <item 
         android:id = "@+id/about_app" 
         android:icon = "@drawable/img_help" 
         android:title = "About app"/> 
   </item> 
</menu>  

新增選單項後,轉到mainActivity.cs以在單擊按鈕時顯示彈出選單。

protected override void OnCreate(Bundle bundle) { 
   base.OnCreate(bundle); 
   SetContentView(Resource.Layout.Main); 
   Button showPopupMenu = FindViewById<Button>(Resource.Id.popupButton); 
   showPopupMenu.Click += (s, arg) => { 
      PopupMenu menu = new PopupMenu(this, showPopupMenu); 
      menu.Inflate(Resource.Menu.popMenu); 
      menu.Show(); 
   }; 
} 

現在,構建並執行您的應用程式。它應該產生以下輸出:

Show Popup Menu

選項選單

選項選單是應用程式的主要選單集合,主要用於儲存設定、搜尋等。在這裡,我們將建立一個包含三個專案的設定選單,即新建檔案設定、幫助和關於應用程式

要建立選項選單,我們必須在資原始檔夾中建立一個新的 XML 佈局檔案。首先,我們將新增一個新的 XML 檔案。右鍵單擊Layout 資料夾,然後轉到新增→新建項→Visual C#→XML 檔案

佈局檔案選擇一個合適的名稱。在我們的示例中,我們將我們的檔案命名為myMenu.xml

myMenu.xml中,我們將建立一個新選單並在其中新增專案。以下程式碼顯示瞭如何操作。

<?xml version = "1.0" encoding = "utf-8"?> 
<menu xmlns:android = "http://schemas.android.com/apk/res/android"> 
  <item 
      android:id = "@+id/file_settings" 
      android:icon = "@drawable/img_settings" 
      android:title = "Settings" 
      android:showAsAction = "ifRoom">
      
      <menu> 
         <item 
            android:id = "@+id/new_game1" 
            android:icon = "@drawable/imgNew" 
            android:title = "New File Settings" /> 
         <item 
            android:id = "@+id/help" 
            android:icon = "@drawable/img_help" 
            android:title = "Help" /> 
         <item 
            android:id = "@+id/about_app" 
            android:icon = "@drawable/img_help" 
            android:title = "About app"/> 
      </menu> 
   </item> 
</menu>

接下來,我們導航到MainActivity.cs併為onOptionsMenu()建立一個覆蓋類。

public override bool OnCreateOptionsMenu(IMenu menu) { 
   MenuInflater.Inflate(Resource.Menu.myMenu, menu); 
   return base.OnPrepareOptionsMenu(menu); 
}

接下來,我們建立一個操作來響應選擇設定選單時。為此,我們為OnOptionsItemSelected()選單建立另一個覆蓋類。

public override bool OnOptionsItemSelected(IMenuItem item) { 
   if (item.ItemId == Resource.Id.file_settings) { 
      // do something here... 
      return true;  
   } 
   return base.OnOptionsItemSelected(item); 
} 

我們的最終完整程式碼如下:

namespace optionsMenuApp {     
   [Activity(Label = "options Menu", MainLauncher = true, Icon = "@drawable/icon")] 
   public class MainActivity : Activity { 
      public override bool OnCreateOptionsMenu(IMenu menu) { 
         MenuInflater.Inflate(Resource.Menu.myMenu, menu); 
         return base.OnPrepareOptionsMenu(menu); 
      } 
      public override bool OnOptionsItemSelected(IMenuItem item) { 
         if (item.ItemId == Resource.Id.file_settings) { 
            // do something here... 
            return true;  
         } 
         return base.OnOptionsItemSelected(item); 
      } 
   } 
} 

現在,構建並執行您的應用程式。它應該產生以下輸出:

New File settings
廣告
© . All rights reserved.