mono for android Listview 里面按钮 view Button click 注册方法 并且传值给其他Activity 主要是context
需求:为Listview的Item里面的按钮Button添加一个事件,单击按钮时通过事件传值并跳转到新的页面。
环境:mono
效果:


布局代码
主布局
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent">
<ListView
android:id="@+id/myList"
android:layout_width="fill_parent"
android:layout_height="fill_parent" />
</LinearLayout>
MainLayout
Item布局
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:padding="10dp"
> <TextView
android:id="@+id/txt"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
/> <Button
android:id="@+id/btn"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentRight="true"
/>
</RelativeLayout>
ListviewItemlayout
MainActivity
using System; using Android.App;
using Android.Content;
using Android.Runtime;
using Android.Views;
using Android.Widget;
using Android.OS;
using System.Collections.Generic; namespace ListViewItemBtnClick
{
[Activity(Label = "ListViewItemBtnClick", MainLauncher = true, Icon = "@drawable/icon")]
public class Activity1 : Activity
{
ListView listView; protected override void OnCreate(Bundle bundle)
{
base.OnCreate(bundle); SetContentView(Resource.Layout.Main); listView = FindViewById<ListView>(Resource.Id.myList); //填充Listview
getList(listView); } //获取Listview
private void getList(ListView listview)
{ Adapter goodsAdapter = new Adapter(this);
List<Item> itemList = new List<Item>();
Item item = new Item(); //给Item赋值 并且添加到list里面
for (int i = ; i <; i++)
{
item.title = i + "|标题|";
item.button = i + "btn";
itemList.Add(item);
}
//给adapter中添加list的值
foreach (Item item1 in itemList)
{
goodsAdapter.Add(item1);
}
//将adapter的值付给listview
listview.Adapter = goodsAdapter;
} }
}
MainActivity
Item类
class Item
{
//标题 textview
public string title { get; set; }
//按钮
public string button { get; set; }
}
Item
Adapter配置数据
namespace ListViewItemBtnClick
{
class Adapter:ArrayAdapter<Item>,View.IOnClickListener
{ private Context context; public Adapter(Context context):base(context,){
//通过构造函数获取context
this.context = context; } public override View GetView(int position, View convertView, ViewGroup parent)
{
View view;
//如果convertView不为空则直接使用
if (convertView!=null)
{
view = convertView; } else
{
view = LayoutInflater.From(this.Context).Inflate(Resource.Layout.ListItem, null); } //设置title的值
TextView title = view.FindViewById<TextView>(Resource.Id.txt);
Button btn = view.FindViewById<Button>(Resource.Id.btn); Item item = GetItem(position); title.Text = item.title + position;
//给每个按钮添加一个tag tag的值为position 或者自定义的ID
btn.SetTag(Resource.Id.btn,position);
btn.Text ="--"+ position+"---";
//注册事件
btn.SetOnClickListener(this);
return view;
} public void OnClick(View v)
{
//获得点击的按钮
Button btn = v as Button;
//获得tag
int id = Convert.ToInt32(btn.GetTag(btn.Id)); Intent it = new Android.Content.Intent(); it.SetClass(context,typeof(Activity2));
it.PutExtra("pos", id);
//注意!启动新Activity
context.StartActivity(it);
}
}
}
Adapter
在其他地方显示数据
string PosValue = Intent.GetStringExtra("pos");
Toast.MakeText(this, PosValue.ToString(), ToastLength.Long).Show();
欢迎交流——小査 1070437522@qq.com
mono for android Listview 里面按钮 view Button click 注册方法 并且传值给其他Activity 主要是context的更多相关文章
- Android Market google play store帐号注册方法流程 及发布应用注意事项【转载】
[转载]http://www.cnblogs.com/zdz8207/archive/2012/07/09/google-play-store-registered.html Android Mark ...
- Android Market google play store帐号注册方法流程 及发布应用注意事项
Android Market google play store帐号申请 注册方法流程 在 Google Play 中发布软件之前,您需要完成以下三项工作: 创建开发人员个人资料 接受开发人员分发协议 ...
- Android ListView中按钮监听器设置的解决方案
在做安卓应用开发的时候很经常会用到ListView,并且每一个Item里面都会有按钮之类的需要进行事件监听的控件.在给按钮添加OnClickListener的时候,一开始很下意识的会想在ListVie ...
- Mono for android 如何动态添加View,线程内部如何更新UI.
貌似所有设计到UI的程序原理都是一样的,子线程是不能够更新UI状态的,所以就必须使用UI自身或者第三方来更新UI. 如 在WinForm 中 就可以使用Control.Invoke(Action ac ...
- 解决Android ListView 和 ScrollView 共存时冲突 问题 方法其一
转载请注明出处: http://www.goteny.com/articles/2013/11/8.html http://www.cnblogs.com/zjjne/p/3428480.html 当 ...
- 在Activity中响应ListView内部按钮的点击事件的两种方法!!!
在Activity中响应ListView内部按钮的点击事件的两种方法 转载:http://www.cnblogs.com/ivan-xu/p/4124967.html 最近交流群里面有人问到一个问题: ...
- Mono for Android (1) 之布局
最近和同事交接工作,首次接触mono for android, 结果画view时少了layout,页面没办法出来,各种冥思,各种找问题,最后把关于布局的一些共享出来(同事写的,哈哈): Andro ...
- 小程序mpvue怎么点击按钮获取button里面的值
在小程序里面是没有dom元素的,这个我们只要会小程序的应该都知道,但是在平时开发中我们偶尔会遇到需要点击某个元素获取它的值的情况,在这里给大家列举了两种情况解决方法 方式一:数据绑定 这种情况的话,对 ...
- 【Xamarin挖墙脚系列:Mono项目的图标为啥叫Mono】
因为发起人大Boss :Miguel de lcaza 是西班牙人,喜欢猴子.................就跟Hadoop的创始人的闺女喜欢大象一样...................... 历 ...
随机推荐
- less学习
// 1.变量:颜色可做+- // from @nice-blue: #5B83AD; @light-blue: @nice-blue + #111; #header { color: @light- ...
- Java中的多态
1.多态:具有表现多种形态的能力的特征 父类: public abstract class Animal {public abstract void Say();} 子类: public class ...
- 在Ubuntu 16.10安装mysql workbench报未安装软件包 libpng12-0错误
1.安装mysql workbench,提示未安装软件包 libpng12-0 下载了MySQL Workbench 6.3.8 在安装的时候报错: -1ubu1604-amd64.deb 提示: ...
- Hawk 6. 高级话题:子流程系统
子流程的定义 当流程设计的越来越复杂,越来越长时,就难以进行管理了.因此,采用模块化的设计才会更加合理.本节我们介绍子流程的原理和使用. 所谓子流程,就是能先构造出一个流程,然后被其他流程调用.被调用 ...
- JavaScript特性(attribute)、属性(property)和样式(style)
最近在研读一本巨著<JavaScript忍者秘籍>,里面有一篇文章提到了这3个概念. 书中的源码可以在此下载.我将源码放到了线上,如果不想下载,可以直接访问在线网址,修改页面名就能访问到相 ...
- Javacript实现字典结构
字典是一种用[键,值]形式存储元素的数据结构.也称作映射,ECMAScript6中,原生用Map实现了字典结构. 下面代码是尝试用JS的Object对象来模拟实现一个字典结构. <script& ...
- Android 解析XML文件和生成XML文件
解析XML文件 public static void initXML(Context context) { //can't create in /data/media/0 because permis ...
- Android游戏开发实践(1)之NDK与JNI开发03
Android游戏开发实践(1)之NDK与JNI开发03 前面已经分享了两篇有关Android平台NDK与JNI开发相关的内容.以下列举前面两篇的链接地址,感兴趣的可以再回顾下.那么,这篇继续这个小专 ...
- ASP.NET Aries JSAPI 文档说明:AR.Form、AR.Combobox
AR.Form 文档 1:对象或属性: 名称 类型 说明 data 属性 编辑页根据主键请求回来的数据 method 属性 用于获取数据的函数指向,默认值Get objName 属性 用于拦截form ...
- ASP.NET 5运行时升级到Beta5
在Visual Studio 2015 RTM和Windows 10正式发布之前,微软把开源.NET升级到了beta5,带来了一些增强和改变.和Visual Studio 2015 RC一起安装的AS ...