[Xamarin] 製作Options Menu、Intent 呼叫網址和Market (转帖)
Android的設計如果沒意外的話通常有三棵按鈕,BACK,HOME,OPTION
![]()
(圖片來源:http://developer.android.com/design/index.html)
在OPTION鍵按下後會出現象是下圖的選單
![]()
(圖片來源:http://developer.android.com/guide/topics/ui/menus.html)
這設計在iOS 上面目前是沒有的,但是在Windows Phone上面有類似的東西叫做App Bar,但是並非由實體鍵盤呼叫,而是透過APP下方的三個小點 ![]()
(圖片來源:http://msdn.microsoft.com/en-us/library/windowsphone/develop/ff431813(v=vs.105).aspx)
這一篇我們來討論一下,如何來透過C# + Xamarin 來作到Android 下的 Options Menu 介紹一下Sample : 按下實體鍵盤的OPTION鍵之後,會出現一個OptionMenu上面只有一個就是選擇按鈕.
. ![]()
點選選擇按鈕之後就會出現兩個選擇使用者決定行為分別為
![]()
按下第一個(開啟當麻許的超技八)就會打開Android系統設定的瀏覽器開啟我的網誌,
按下第二個就會開啟Market上的愛料理的下載,接下來我們來看看怎麼實作
1.首先,我們採取比較偷懶且簡單的方法就是使用Layout敘述來幫忙,
我們在專案的 Resources下建立一個Menu的檔案夾並且我在建立一個檔案叫做OptionMenu.xml 如下圖: ![]()
再來我們來看看這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 還有一個網址 結果: ![]()
![]()
![]()
![]()
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
[Xamarin] 製作Options Menu、Intent 呼叫網址和Market (转帖)的更多相关文章
- [Xamarin] 製作吐司(Toast)以及圖文並茂的Toast (转帖)
最近在看Xamarin使用C#來撰寫Android App . 紀錄一下,順便給之後有需要的人可以有所參考 :) 今天要來聊的是關於Toast 這東西,這在以前Android 上面我是很常使用 拿來l ...
- [Xamarin] 用Service 來製作一個Notification的時鐘 (转帖)
這篇利用來製作一個會出現在Notification的時鐘,來敘述一下 Service,在你製作的App被關閉時,可以透過Service繼續運行你想處理的部分,當然Service 也有其生命周期 接下來 ...
- [Xamarin] 透過 intent-filter 來接管 http ,製作偽瀏覽器 (转帖)
使用Android 的朋友一定對這畫面不陌生在開啟網址的時候,或是Youtube連結的時候,因為Android 發現,你手機安裝的App有哪些可以支援這些東西的瀏覽 所以,就可以使用甚麼東西來進行開啟 ...
- Android -- Options Menu,Context Menu,Popup Menu
Options Menu 创建选项菜单的步骤: 1. ...
- 【转】常用 Microsoft .NET Framework 各版本下載網址列表
研究] 常用 Microsoft .NET Framework 各版本下載網址列表 2014-05-23 僅列常用的 (IA64, Beta, hotfix, ... 不列) Microsoft .N ...
- IE網址欄快速輸入網址,“Ctrl+Enter”補齊“.com”
繁體中文Windows,預設 IE 在網址列輸入 abc,然後按 Ctrl+Enter ,會跳到www.abc.com.tw, 但較常用的連結是www.abc.com,如何修改这一設定呢? 可以透過修 ...
- Day1 Toast/Menu/Intent传递数据
** --------------->未经允许,禁止转载<----------------** 今天是我读<第二行代码>的第一天,也是我第一次开始写CSDN博客,之前的笔记都在 ...
- CSS製作動畫效果(Transition、Animation、Transform)
CSS 2D Transforms https://www.w3schools.com/css/css3_2dtransforms.asp CSS 3D Transforms https://www. ...
- Options Menu的android3.0以上和以下版本显示刷新原理,刷新适配
一 显示区别: 2.3.x及以下版本,需要按菜单键显示菜单,当菜单打开时,第一个可见的部分是图标菜单,最多可容纳6个菜单项.如果你的菜单包括Android的地方超过6项,第六项,其余将被归到”More ...
随机推荐
- JS 退出系统并跳转到登录界面的实现代码
js代码如下: <script language="javascript" type="text/javascript"> function log ...
- 各种数据库分页sql
1.oracle数据库分页 select * from (select a.*,rownum rc from 表名 where rownum<=endrow) a where a.rc>= ...
- 27、初步探索echarts源码
1.首先发现随笔中凡是和echarts相关的点击率都特别高,于是乎就接着写了echarts因为感觉要转点击率 首先声明我并不是专业做前端的,所以如果有些说得不对的地方,希望前端大神们出来指正 首先发现 ...
- Python学习笔记(四)字符串型
字符串是 Python 中最常用的数据类型.我们可以使用引号('或")来创建字符串. 在最新的Python 3版本中,字符串是以Unicode编码的,也就是说,Python的字符串支持多语言 ...
- java length size
1 java中的length属性是针对数组说的,比如说你声明了一个数组,想知道这个数组的长度则用到了length这个属性. 2 java中的length()方法是针对字符串String说的,如果想看这 ...
- C/C++操作MySQL数据库——增、删、改、查
1.数据库链接 int cppDatebase::DatabaseConnect(sBit8 *uName,sBit8 *pWord,sBit8 *dbName) { dbHandle = mysql ...
- springMVC + Spring + MyBatis 整合
整理下SSM(基于注解)的整合 1. web.xml 配置文件 <?xml version="1.0" encoding="UTF-8"?> < ...
- [原创]Matlab之GUI生成EXE文件
近期因为项目需要,简化流程,写了一些Matlab程序,并配备上了GUI界面使其简单易用.然后问题来了,可移植性.使用Matlab生成EXE文件(可以封装很多的function),然后在一台安装有Mat ...
- UIImageView、UISlider、UISwitch、UIStepper、UISegmentControl
UIImageView——图像视图 作用:专门用来显示图片的控件 . 设置图像 [self.imageView setImage:[UIImage imageNamed:@"abc.png& ...
- HttpServletResponse
Web服务器收到客户端的http请求,会针对每一次请求,分别创建一个用于代表请求的request对象.和代表响应的response对象.request和response对象即然代表请求和响应,那我们要 ...