首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

如何将两个适配器添加到一个listView (xamarin android)

在Xamarin Android中将两个适配器添加到一个ListView的方法是通过创建一个自定义适配器来实现。以下是实现此功能的步骤:

  1. 创建自定义适配器类:public class CustomAdapter : BaseAdapter { private List<string> data1; private List<string> data2; private Context context;
代码语言:txt
复制
   public CustomAdapter(Context context, List<string> data1, List<string> data2)
代码语言:txt
复制
   {
代码语言:txt
复制
       this.context = context;
代码语言:txt
复制
       this.data1 = data1;
代码语言:txt
复制
       this.data2 = data2;
代码语言:txt
复制
   }
代码语言:txt
复制
   public override int Count => data1.Count;
代码语言:txt
复制
   public override Java.Lang.Object GetItem(int position)
代码语言:txt
复制
   {
代码语言:txt
复制
       return null;
代码语言:txt
复制
   }
代码语言:txt
复制
   public override long GetItemId(int position)
代码语言:txt
复制
   {
代码语言:txt
复制
       return position;
代码语言:txt
复制
   }
代码语言:txt
复制
   public override View GetView(int position, View convertView, ViewGroup parent)
代码语言:txt
复制
   {
代码语言:txt
复制
       View view = convertView;
代码语言:txt
复制
       if (view == null)
代码语言:txt
复制
       {
代码语言:txt
复制
           LayoutInflater inflater = (LayoutInflater)context.GetSystemService(Context.LayoutInflaterService);
代码语言:txt
复制
           view = inflater.Inflate(Android.Resource.Layout.SimpleListItem2, null);
代码语言:txt
复制
       }
代码语言:txt
复制
       TextView text1 = view.FindViewById<TextView>(Android.Resource.Id.Text1);
代码语言:txt
复制
       TextView text2 = view.FindViewById<TextView>(Android.Resource.Id.Text2);
代码语言:txt
复制
       text1.Text = data1[position];
代码语言:txt
复制
       text2.Text = data2[position];
代码语言:txt
复制
       return view;
代码语言:txt
复制
   }

}

代码语言:txt
复制
  1. 在Activity中使用自定义适配器:public class MainActivity : Activity { private ListView listView; private List<string> data1; private List<string> data2;
代码语言:txt
复制
   protected override void OnCreate(Bundle savedInstanceState)
代码语言:txt
复制
   {
代码语言:txt
复制
       base.OnCreate(savedInstanceState);
代码语言:txt
复制
       SetContentView(Resource.Layout.activity_main);
代码语言:txt
复制
       listView = FindViewById<ListView>(Resource.Id.listView);
代码语言:txt
复制
       // 初始化数据
代码语言:txt
复制
       data1 = new List<string> { "Item 1", "Item 2", "Item 3" };
代码语言:txt
复制
       data2 = new List<string> { "Description 1", "Description 2", "Description 3" };
代码语言:txt
复制
       // 创建自定义适配器
代码语言:txt
复制
       CustomAdapter adapter = new CustomAdapter(this, data1, data2);
代码语言:txt
复制
       // 设置适配器
代码语言:txt
复制
       listView.Adapter = adapter;
代码语言:txt
复制
   }

}

代码语言:txt
复制
  1. 在布局文件中添加ListView:<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="vertical" android:layout_width="match_parent" android:layout_height="match_parent">
代码语言:txt
复制
   <ListView
代码语言:txt
复制
       android:id="@+id/listView"
代码语言:txt
复制
       android:layout_width="match_parent"
代码语言:txt
复制
       android:layout_height="match_parent" />

</LinearLayout>

代码语言:txt
复制

这样,你就可以将两个适配器的数据添加到一个ListView中显示了。自定义适配器中的GetView方法用于设置每个列表项的显示内容,你可以根据自己的需求进行修改。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

C# Xamarin移动开发项目实战篇

) 7、Android漂亮的主菜单界面(GridView) 8、Android漂亮的列表展示数据(ListView) 9、 C# Xamarin App之打包APK文件和自动升级 10、思考与探讨移动架构设计...本次分享课程最终目标: 希望学完本次分享课程后能够快速通过Xamarin For Android打造一个后台管理系统App应用程序,从而将学习成果转化为工作成果。...项目实战示例演示 三、C# Xamarin移动开发项目实战分享 3.1、Android 线程实际场景运用( UI Thread) 主线程也叫UI线程 当一个程序启动的时候,系统自动创建一个主线程,在这个主线程中...ListView 和 GridView 是 AdapterView 的子类,它们可以绑定填充到一个适配器,从外部源检索数据,并创建一个视图表示每个数据项。...ListView 和 GridView 是 AdapterView 的子类,它们可以绑定填充到一个适配器,从外部源检索数据,并创建一个视图表示每个数据项。

9.9K50
  • Xamarin.Forms入门-使用 Xamarin.Forms 来创建跨平台的用户界面

    Xamarin.Forms 是一个跨平台的、基于原生控件的UI工具包,开发人员可以轻松的创建适用于 Android,iOS 以及 Windows Phone的用户界面。...使用 Xamarin.Forms Page Android 创建一个Activity类型,并且使用 MainLauncher 特性修饰,在 OnCreate 方法中,初始化Xamarin.Forms框架...堆栈式布局的子元素会按照添加到容器中的顺序一个一个被摆放,堆栈式布局有两个方向:竖直与水平方向。 下面的代码会把三个 Label 控件添加到 StackLayout 中去。...子元素添加到容器中的顺序会影响子元素的Z-Order,上面的例子中会发现第一个添加的元素会被后面添加的元素遮住。...列表 ListView一个非常常见的控件,用于展现一组数据,每一个条目都会被包含在一个单元格内部。默认情况下ListView使用了一个 TextCell作为模板来展现每一个条目数据。

    12.9K70

    Android ListView与RecycleView的对比使用解析

    ListView,并为其定义一个id,方便我们之后的调用,宽高与父控件相同 2.准备数据,将数据添加到ArrayAdapter适配器当中 3.在Activity的java文件中使用findviewbyid...,定义了一组String类型的数组,之后创建ArrayAdapter适配器,注意String,是一个泛型,后面的构造函数里的参数分别为上下文android.R.Layout.simple_list_item...我定义了两个各占一半的textview,记得根标签的高使用wrap_content 2.定义一个T类,作为适配器的泛型,(类似之前的String),里面需要一个构造方法,成员变量和get方法 ?...4.准备数据,将数据添加到第三步的适配器类中,之后与上面所说的步骤一样,找到Listview的实例,设置适配器 ? 效果 ?...ListView中所说的T类,适配器的泛型 3.定义一个适配器T类,使其继承RecyclerView.Adapter<T.ViewHolder (ViewHolder是T类中的一个内部类),需要一个构造方法接收数据源

    1.7K10

    android学习笔记----ListView和各种适配器简介

    > 运行结果: 如果需要隐藏列表项的分割线, 可在对应xml 文件中的 ListView XML 元素上设置 两个属性。...所以 ArrayAdapter 知道如何将该数据传输或调整到列表项视图中,并在 ListView 中显示。...,当视图被滚动离开屏幕后,它们就会被添加到Scrap Pile,比如前两个列表项不再可见,它们将进入 Scrap Pile,然后当我们请求新的列表项时,我们可以通过将这些视图再返回到 ArrayAdapter...并且知道如何将每项呈现为视图,与此同时 ListView 负责在屏幕上显示这些视图,检测用户的触摸手势,并跟踪用户是否位于整个列表中。  ...要填充下拉菜单中的每项,我们为其关联了一个适配器,菜单中的每项都来自数据来源中的某项,可以看出,当你构建 Android 应用时,就会遇到适配器模式。

    2.2K10

    张高兴的 Xamarin.Forms 开发笔记:为 Android 与 iOS 引入 UWP 风格的汉堡菜单 ( MasterDetailPage )

    但怎样通过 Xamarin.Forms ,将这一样式的汉堡菜单带入到 Android 与 iOS 中呢?...MasterPageItem.cs   和 UWP 的汉堡菜单一样,首先要创建一个类,作为导航的项目,用来绑定 ListView 。名字叫 MasterPageItem.cs 。   ...本项目的 MasterPage 分为两栏,分一级菜单与二级菜单,即置顶一个 ListView 与置底一个 ListView 。...>   MasterPage.xaml.cs 代码也需要讲下,不知是怎么回事,以上 Xaml 代码直接运行时两个菜单会显示不正常...两个 ListView 需要通过属性的方式,向 MainPage 传递控件。字体路径各个项目不同,需要单独设置,我后面会说。

    4.5K100

    Android从零单排系列二十】《Android视图控件——ListView

    常用的适配器包括ArrayAdapter、CursorAdapter和BaseAdapter等。 布局:ListView的每个列表项通常由一个布局文件定义,用于指定列表项的外观和内容。...添加数据:通过适配器ListView添加数据,可以使用适配器的方法(如add()、addAll())添加单个或多个数据项。一旦数据被添加到适配器ListView会自动刷新并显示新数据。...SimpleAdapter:SimpleAdapter是一个通用的适配器,用于将复杂的数据结构(如List>)与ListView绑定。...四 ListView简单Demo 以下是一个简单的ListView示例代码: 在XML布局文件中添加ListView控件(activity_main.xml): <ListView xmlns:android...,你将看到一个包含水果列表的ListView界面。

    57810

    从0系统学Android--3.5 最常用和最难用的控件---ListView

    数据不能直接传递给 ListView 需要借助适配器来完成。Android 中提供了许多适配器的实现类。...然后使用 setAdapter 就将构建好的适配器对象传递进去,这样 Listview 和 数据之间的关联就建立了。...3.5.2 定制 LIstView 的界面 只显示一行文字太过单调了,下面对 ListView 的界面进行定制,显示更加复杂的内容。 定义一个实体类,作为 ListView 适配器的适配类型。...,第三个参数指定成 false 表示只让我们在父布局中声明的 layout 属性生效,其实就是为了测量一下这个生成的布局,但是不会将这个 View 添加到父布局中,因为一旦 View 有了父布局后,就不能再添加到...最后我们在 Activity 中将 ListView 与我们自己创建的适配器绑定就可以了。

    60110

    Android新组件RecyclerView介绍,其效率更好

    RecyclerView介绍 非著名程序员 今天我们首先来说为什么要介绍这个新组件RecyclerView,因为前几天我发布了一个常用面试题ListView的复用及如何优化的文章,介绍给一些开发者,但是我看到有关的反馈说...1、什么是RecyclerView RecyclerView 是 android-support-v7-21 版本中新增的一个 Widgets,官方对于它的介绍则是:RecyclerView 是 ListView...,其实与以前我们使用的适配器基本类似,只是稍微有所不同,比如viewholder它帮我们封装好了,不用像以前使用listview适配器一样自己去写viewholder了。...废话不多说了,适配器例子如下: package com.pandastudios.pandastudios.adapter; import android.support.v7.widget.RecyclerView...缺点: 在RecyclerView中,没有一个onItemClickListener方法。所以目前在适配器中处理这样的事件比较好。如果想要从适配器上添加或移除条目,需要明确通知适配器

    1.3K90

    Android ListView几种Adapter用法简介「建议收藏」

    Android ListView使用简介 ListViewAndroid软件开发中十分常用也十分重要的一个UI控件。...ListView的每一个子项可以是一个简单的字符串,也可以是一组View的组合,开发者完全可以根据自己的需求来定义显示的形式。 如何使用一个ListView实现对数据的显示呢? 1....创建ListView控件,已备数据显示 2. 准备要显示的数据 3. 为ListView构建一个数据适配器(Adapter) 4. 绑定适配器 5....当然,我们也可以直接用代码创建一个ListView控件,并把该控件作为要显示的View,或者添加到现有的一个groupview控件中去。...如何创建一个适配器? 在这几个步骤中,构建数据适配器是很重要的一个环节,同样也是比较复杂的一个环节。ListView常用的适配器(Adapter)有以下几种。

    1.1K20

    一位Android程序员入坑Flutter后整理出一份超详细的学习笔记

    这里Android与iOS还是有差别的,如RN在iOS上JS引擎不支持JIT,会一定程度影响效率,Xamarin在iOS上可以直接编译成iOS平台可以执行的程序,所以在实际运行起来的性能是一样的,唯一的差别就是微软得更快的支持...这也是RN在线程方面的做android程序的一个痛点,Flutter采用了比较容易想到的曲线救国的办法,提供了一个叫Isolate的对象,它实际是一个基于socket的数据通道,相当于把数据放在一个独立的进程进行处理...之前做过类比,如MaterialApp有点类似于Activity,而Scaffold都点类似Fragment,实际上他们两个都是Flutter的Widgets,也就是说其实只有View的概念了。...Flutter没有ScrollView,合并到了ListView,通过ListView.builder创建的ListView提供了View复用的逻辑。...int position) { return Text(xxx); })) 其中itemBuilder有点像Android ListView的getView,

    2.5K00

    Android UI 中的 ListView列表控件的示例

    这里我们就使用了一个简单的 data 数组来模拟。 数组中的数据需要借助适配器来传递。Android 中提供了很多适配器的实现类,其中最好用的就是 ArrayAdapter。...我们使用了 android.R.layout.simple_list_item_1作为 ListView 子项布局的 id,这是一个 Android内置的布局文件,里面只有一个 TextView,用于显示一段文本...首先定义一个实体类,作为 ListView 适配器的适配类型: public class Cat { /** * 名字 */ private String name; /**...接着创建一个自定义的适配器,这个适配器继承 ArrayAdapter,并将泛型指定为 Cat 类: public class CatAdapter extends ArrayAdapter<Cat {...inflate() 的第三个参数表示不添加父布局,因为这个 View 一旦有了父布局之后,就不能再添加到 ListView 中咯。

    1.6K20
    领券