[Xamarin] 簡單實作ListActivity (转帖)

但是文中案例因為是用事先設好的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 (转帖)的更多相关文章
- [Xamarin] 簡單使用AlertDialog (转帖)
這東西跟Toast 很像,有方便提示的作用 像是Windows 上面的MessageBox 或是 Javascript 的 Alert 會先阻斷使用者並且下一個決定 很簡單我就不贅述,基本上透過 Al ...
- [Xamarin] 簡單使用Fragment 靜態篇 (转帖)
新的Android 開發,非常會使用到Fragment,不過官方範例有點小複雜,對初學者來說有點難消化,所以就記錄一下心得,這邊部落格將使用靜態的方法使用Fragment,Fragment 有自己的生 ...
- 簡單SQL存儲過程實例
簡單SQL存儲過程實例 摘自:http://blog.csdn.net/libra6956/article/details/5589173 实例1:只返回单一记录集的存储过程. 银行存款表(bankM ...
- [Xamarin] 使用Webview 來做APP (转帖)
有時候,企業要求的沒有這麼多,他原本可能官方網站就已經有支援Mobile Web Design 他只需要原封不動的開發一個APP 也或是,他只是要型錄型,或是問卷調查的型的APP,這時候透過類似像if ...
- [Xamarin] 動態載入Fragment (转帖)
這篇我們來動態加入,一樣務求好懂簡單 1.一樣先將專案調整成3.0以上版本 2.首先建立自定Control的Layout \Resources\Layout\MyControlLayout1.axml ...
- 转:[ASP.NET]重構之路系列v4 – 簡單使用interface之『你也會IoC』
前言 上次v3版本,我們將Entity, Service, Dao, Utility都放到了類別庫裡面,讓我們可以輕鬆的在不同專案中用同一份組件.雖然文章沒有獲得太多的讚賞,不過相信那一定是太多人會這 ...
- COB(Chip On Board)的製程簡單介紹
前面提及 COB 的生產與 IC 的封裝製程幾乎是一致的,除了把 leadframe 改成了 PCB,把封膠由 molding 改成 dispensing,少了 triming & marki ...
- ASP.NET MVC 5 實作 GridView 分頁
本文用 ASP.NET MVC 5 實作一個 GridView,功能包括: 分頁(paging).關鍵字過濾(filtering).排序(sorting).AJAX 非同步執行,外觀上亦支援 Resp ...
- 【转】簡單講講 USB Human Interface Device
原地址http://213style.blogspot.com/2013/09/usb-human-interface-device.html 恩,發本文的原因是看到了以前畢業的朋友在旁邊的對話框問了 ...
随机推荐
- zTree的简单使用
理论可以看:http://www.cnblogs.com/shinhwazt/p/5828031.html zTree包:链接:http://pan.baidu.com/s/1eR4xP6M 密码:w ...
- 8-5 Navicat工具与pymysql模块
一 Navicat 在生产环境中操作MySQL数据库还是推荐使用命令行工具mysql,但在我们自己开发测试时,可以使用可视化工具Navicat,以图形界面的形式操作MySQL数据库 需要掌握的基本操作 ...
- 安装及运行 RabbitMQ 服务器 (windows)
1. 一些网址 http://www.rabbitmq.com/ http://www.rabbitmq.com/install-windows.html http://www.rabbitmq.co ...
- PHP(十)字符串
- .NET基础 (10)流和序列化
流和序列化1 什么是流,.NET中有哪些常见的流2 如何使用压缩流3 Serializable特性有何作用4 .NET提供了哪几种可进行序列化操作的类型5 如何自定义序列化和反序列化的过程 流和序列化 ...
- 团队-Forward-团队一阶段互评
学号:2015035107105得分:4原因:代码不规范,有一些错误,需要我们的帮助. 学号:2015035107109得分:7原因:与队员沟通少,代码衔接有问题. 学号:2015035107113得 ...
- 23 DesignPatterns学习笔记:C++语言实现 --- 1.4 Builder
23 DesignPatterns学习笔记:C++语言实现 --- 1.4 Builder 2016-07-21 (www.cnblogs.com/icmzn) 模式理解
- JDBC 中 socketTimeout 的作用
如果我们把socketTimeout设置如下: socketTimeout=60000; 这意味着60秒以内服务器必须开始给客户端吐数据,以保持socket的活性.配置成60秒,一般查询都不会遇到问题 ...
- Javascript设计模式理论与实战:简单工厂模式
通常我们创建对象最常规的方法就是使用new关键字调用构造函数,这会导致对象之间的依赖性.工厂模式是一种有助于消除类之间依赖性的设计模式,它使用一个方法来决定要实例化哪一个类.本文详细介绍了简单工厂模式 ...
- [Erlang25]Erlang in anger 翻译
Erlang in anger Erlang in anger 是写Learn some Erlang的帅小伙(照片真是帅死啦)写的,一共87页,可以随意下载(英文原版):http://www ...