但是文中案例因為是用事先設好的Layout 但是如果需要被選擇的東西很多時該怎麼辦

我們討論一下,如何製作很簡單的List .

首先我們得先參考一下再android 思維下要製作一個List 需要的架構圖


圖片參考: http://docs.xamarin.com/guides/android/user_interface/working_with_listviews_and_adapters/part_1_-_listview_parts_and_functionality
很重要的一點 需要ListActivity 再來 需要指定其 ListAdapter ,不過基本上,因為如果只是簡單的列表,其android 有提供些比較簡單就可以實作出來的方法

首先我們直接開一個新的Activity  ,文中範例我命名為 ActivityTextList.cs


之後請注意雖然他預設繼承:Activity 但是我們將他改成繼承

:ListActivity

using System;
using Android.App;
using Android.Content;
using Android.OS;
using Android.Views;
using Android.Widget;
 
namespace SimpleTextList
{
    [Activity(Label = "My Activity")]
    public class ActivityTextList :ListActivity
    {
        private string[] datas;
        protected override void OnCreate(Bundle bundle)
        {
            base.OnCreate(bundle);
 
            //載入假資料
            datas = new string[] { "Apple", "Banana", "Cat", "Dracula", "Elf", "Fuxx", "Google", "Hadoop",
                "Internet", "Javascript", "Kungfu", "Launch", "Microsoft", "Nodejs", "Orange", "Programmer",
                "Queen", "Ricky", "Student", "Teacher", "Uniqlo", "Vicky", "Windows", "Xamarin", "Yeti", "Zebra" };
            this.ListAdapter = new ArrayAdapter<String>(this, Android.Resource.Layout.SimpleExpandableListItem1, datas);
 
 
        }
 
        //複寫點擊項目之後所做的動作
        //此案例為開啟一個新的Intent 且SetResult回傳 
        protected override void OnListItemClick(ListView l, View v, int position, long id)
        {
            //開一個新的 intent 傳回資料
            //詳細用法請參考: http://no2don.blogspot.com/2013/07/xamarin-startactivityforresult.html
            var intent = new Intent(this, typeof(Activity1));
            intent.PutExtra("name",datas[position]);
            SetResult(Result.Ok, intent);
            Finish();
 
        }
    }
}

請注意喔我是繼承 ListActivity 並非一般Activity 這時候我在使用版型中的 Android.Resource.Layout.SimpleExpandableListItem1 作為顯示

其中內建有四種可以選擇


其中 複寫 OnListItemClick 後可以自訂點選後的行為

我們來看看主Activity 的Code:

using Android.App;
using Android.Content;
using Android.Widget;
using Android.OS;
 
namespace SimpleTextList
{
    [Activity(Label = "SimpleTextList", MainLauncher = true, Icon = "@drawable/icon")]
    public  class Activity1 : Activity
    {
 
        protected override void OnCreate(Bundle bundle)
        {
            base.OnCreate(bundle);
 
            SetContentView(Resource.Layout.Main);
 
 
            var btn1 = FindViewById<Button>(Resource.Id.btn1);
            btn1.Click += delegate
            {
                StartActivityForResult(typeof(ActivityTextList), 1);
            };
        }
 
        /// <summary>
        /// 複寫有Activity回傳結果的資料
        /// </summary>
        /// <param name="requestCode"></param>
        /// <param name="resultCode"></param>
        /// <param name="data"></param>
        protected override void OnActivityResult(int requestCode, Result resultCode, Intent data)
        {
            base.OnActivityResult(requestCode, resultCode, data);
 
            if (requestCode == 1 && resultCode == Result.Ok)
            {
                Toast.MakeText(this, "選取結果(OnActivityResult):" + data.GetStringExtra("name"), ToastLength.Short).Show();
            }
        }
    }
 
 
}
 

結果:


文章參考: http://docs.xamarin.com/guides/android/user_interface/working_with_listviews_and_adapters/part_2_-_populating_a_listview_with_data http://developer.android.com/reference/android/app/ListActivity.html

[Xamarin] 簡單實作ListActivity (转帖)的更多相关文章

  1. [Xamarin] 簡單使用AlertDialog (转帖)

    這東西跟Toast 很像,有方便提示的作用 像是Windows 上面的MessageBox 或是 Javascript 的 Alert 會先阻斷使用者並且下一個決定 很簡單我就不贅述,基本上透過 Al ...

  2. [Xamarin] 簡單使用Fragment 靜態篇 (转帖)

    新的Android 開發,非常會使用到Fragment,不過官方範例有點小複雜,對初學者來說有點難消化,所以就記錄一下心得,這邊部落格將使用靜態的方法使用Fragment,Fragment 有自己的生 ...

  3. 簡單SQL存儲過程實例

    簡單SQL存儲過程實例 摘自:http://blog.csdn.net/libra6956/article/details/5589173 实例1:只返回单一记录集的存储过程. 银行存款表(bankM ...

  4. [Xamarin] 使用Webview 來做APP (转帖)

    有時候,企業要求的沒有這麼多,他原本可能官方網站就已經有支援Mobile Web Design 他只需要原封不動的開發一個APP 也或是,他只是要型錄型,或是問卷調查的型的APP,這時候透過類似像if ...

  5. [Xamarin] 動態載入Fragment (转帖)

    這篇我們來動態加入,一樣務求好懂簡單 1.一樣先將專案調整成3.0以上版本 2.首先建立自定Control的Layout \Resources\Layout\MyControlLayout1.axml ...

  6. 转:[ASP.NET]重構之路系列v4 – 簡單使用interface之『你也會IoC』

    前言 上次v3版本,我們將Entity, Service, Dao, Utility都放到了類別庫裡面,讓我們可以輕鬆的在不同專案中用同一份組件.雖然文章沒有獲得太多的讚賞,不過相信那一定是太多人會這 ...

  7. COB(Chip On Board)的製程簡單介紹

    前面提及 COB 的生產與 IC 的封裝製程幾乎是一致的,除了把 leadframe 改成了 PCB,把封膠由 molding 改成 dispensing,少了 triming & marki ...

  8. ASP.NET MVC 5 實作 GridView 分頁

    本文用 ASP.NET MVC 5 實作一個 GridView,功能包括: 分頁(paging).關鍵字過濾(filtering).排序(sorting).AJAX 非同步執行,外觀上亦支援 Resp ...

  9. 【转】簡單講講 USB Human Interface Device

    原地址http://213style.blogspot.com/2013/09/usb-human-interface-device.html 恩,發本文的原因是看到了以前畢業的朋友在旁邊的對話框問了 ...

随机推荐

  1. Oracle学习笔记(七)

    九.高级查询(分组,子查询)查询升级版: 需要用到三张表员工表: desc emp EMPNO 员工号 ENAME 员工姓名 JOB 员工职位 MGR 老板员工号 HIREDATE 员工入职日期 SA ...

  2. webservice需要的包以及demo

    包地址:http://pan.baidu.com/s/1qWyPgqo demo:http://pan.baidu.com/s/1dDvNJg9

  3. scvmm sdk之ddtkh(二)

    ddtkh,dynamic datacenter toolkit for hosters,原先发布在codeplex开源社区,后来被微软归档到开发者社区中,从本质上来说它是一个企业级应用的套件,集成了 ...

  4. Navicat 连接阿里云RDS

    背景: Navicat 是一个非常优秀与易用的数据库可视化管理软件,相信很多人都用过.这次服务器升级,数据库用了阿里云的RDS,阿里云自带的数据库管理面板功能有限,用不习惯.所以还是想着用 Navic ...

  5. jsp页面都放在web-inf下面说是要防止用户直接访问jsp页面,为么不能直接访问jsp

    为了保护那部分jsp页面,如果没有登录验证,那部分jsp用户可以直接访问,这样很不安全,放在WEB-INF下面,就使得只能WEB-INF文件夹外jsp页面调用里面的jsp,这样来使用,就比如我们有一个 ...

  6. [C#]C#中ToString()和Convert.ToString()的区别

    一.一般用法说明 ToString()是Object的扩展方法,所以都有ToString()方法;而Convert.ToString(param)(其中param参数的数据类型可以是各种基本数据类型, ...

  7. CSS鼠标手势

    属性名:cursor 属性值(手势状态): auto  :  默认值.浏览器根据当前情况自动确定鼠标光标类型. all-scroll  : IE6.0  有上下左右四个箭头,中间有一个圆点的光标.用于 ...

  8. WPF里面多线程访问UI线程、主线程的控件

    如果出现以下错误:调用线程无法访问此对象,因为另一个线程拥有该对象. 你就碰到多线程访问UI线程.主线程的控件的问题了. 先占位.

  9. iOS 画图基础

    基础要点: 1,画图不可以在 ViewController 里,而是应该在一个 UIView 的子类中,比如新建一个 DrawView 继承自 UIView. 2,覆盖 UIView 的 drawRe ...

  10. SHOI2013 扇形面积并

    题目链接:戳我 补一张图 我们尝试把圆上的扇形转化成直线上的矩形--我们维护[1,2*m]的区间,那么每个能产生贡献的子区间的长度*第K大的半径的平方的总和就是answer了. 怎么转化呢?左端点为a ...