zoukankan      html  css  js  c++  java
  • [Xamarin] 製作Options Menu、Intent 呼叫網址和Market (转帖)

    Android的設計如果沒意外的話通常有三棵按鈕,BACK,HOME,OPTION

    2013-07-18_110554
    (圖片來源:http://developer.android.com/design/index.html)

    在OPTION鍵按下後會出現象是下圖的選單

    options_menu
    (圖片來源:http://developer.android.com/guide/topics/ui/menus.html)

    這設計在iOS 上面目前是沒有的,但是在Windows Phone上面有類似的東西叫做App Bar,但是並非由實體鍵盤呼叫,而是透過APP下方的三個小點 IC531092
    (圖片來源:http://msdn.microsoft.com/en-us/library/windowsphone/develop/ff431813(v=vs.105).aspx)

    這一篇我們來討論一下,如何來透過C# + Xamarin 來作到Android 下的 Options Menu 介紹一下Sample : 按下實體鍵盤的OPTION鍵之後,會出現一個OptionMenu上面只有一個就是選擇按鈕.

    . Screenshot_2013-07-18-11-15-022
    點選選擇按鈕之後就會出現兩個選擇使用者決定行為分別為

    Screenshot_2013-07-18-11-15-0228
    按下第一個(開啟當麻許的超技八)就會打開Android系統設定的瀏覽器開啟我的網誌,

    按下第二個就會開啟Market上的愛料理的下載,接下來我們來看看怎麼實作

    1.首先,我們採取比較偷懶且簡單的方法就是使用Layout敘述來幫忙,

    我們在專案的  Resources下建立一個Menu的檔案夾並且我在建立一個檔案叫做OptionMenu.xml 如下圖: 2013-07-18_112139

    再來我們來看看這xml檔案敘述啥內容

    <?xml version="1.0" encoding="utf-8"?>
    <menu xmlns:android="http://schemas.android.com/apk/res/android">
      <item android:id="@+id/menuMain"
            android:title="選擇動作" >
        <menu>
          <item android:id="@+id/itemMenu1"
                android:title="開啟當麻許的超技八" />
          <item android:id="@+id/itemMenu2"
                android:title="開啟Market上的愛料理" />
          
        </menu>
      </item>
    </menu>

    我建立一個Menu下有一個Item為'選擇動作'  其底下還有一個Menu裡面有兩個item 就這巢狀結構決定於階層的方式

    2.接下來,我們看看在主要的Activity 上面如何將OptionMenu呼叫出來並且決定被選取後的行為,我們先得覆寫在 Activity中 OnCreateOptionsMenu 的事件,讓他建立起OpetionMenu

    public override bool OnCreateOptionsMenu(IMenu menu)
    {
        //將Resoirces下的Menu/OptionMenu.xml 載入
        MenuInflater.Inflate(Resource.Menu.OptionMenu, menu);
        return true;
    }

    再來就是選單點下去的後的行為

    public override bool OnOptionsItemSelected(IMenuItem item)
    {
        switch (item.ItemId)
        {
            //如果選取的是 開啟當麻許的超技八
            case Resource.Id.itemMenu1:
                Toast.MakeText(this, "開啟當麻許的超技八", ToastLength.Short).Show();
                //開啟一個Inetnt 並且將此呼叫起來
                StartActivity(new Intent(Intent.ActionView, Android.Net.Uri.Parse("http://no2don.blogspot.com")));
                return true;
            //如果選取的是 開啟Market的愛料理 Download
            case Resource.Id.itemMenu2:
                Toast.MakeText(this, "開啟Market的愛料理 Download", ToastLength.Short).Show();
                //開啟一個Inetnt 並且將此呼叫起來
                StartActivity(new Intent(Intent.ActionView, Android.Net.Uri.Parse("market://details?id=" + "com.polydice.icook")));
                return true;
            default:
                return base.OnOptionsItemSelected(item);
        }
    }

    其中如果只是拿來用Toast 顯示一些文字也太無聊,所以決定就用 Intent 呼叫起Market 還有一個網址 結果: Screenshot_2013-07-18-11-15-00
    Screenshot_2013-07-18-11-15-08
    Screenshot_2013-07-18-11-15-16Screenshot_2013-07-18-11-15-22

     

     

    Reference:

    http://developer.android.com/guide/topics/resources/menu-resource.html

    http://stackoverflow.com/questions/15224150/how-to-create-a-option-menu-in-android

    http://developer.android.com/reference/android/view/MenuInflater.html

     

     

  • 相关阅读:
    Arctic Network POJ
    Journey CodeForces
    Free Goodies UVA
    MU Puzzle HDU
    Balance POJ
    1sting 大数 递推
    最大报销额 暴力。。
    洛谷P2826 LJJ的数学课
    2018年12月29日
    2018年12月28日
  • 原文地址:https://www.cnblogs.com/whatthehell/p/3444748.html
Copyright © 2011-2022 走看看