Android 如何在listview中添加两列

Android 如何在listview中添加两列,android,listview,arraylist,xamarin.android,Android,Listview,Arraylist,Xamarin.android,如何在listview中添加两列并获取第一列的值 我有一个从select接收数据的适配器,该数据被添加到listview中 我希望listview是两列的,每当我单击一行时,它就会取第一列的值 我的listview的填充方式如下: adapter = new ArrayAdapter(this, Android.Resource.Layout.SimpleListItemMultipleChoice, observacao); lv.Adapter = adapter

如何在listview中添加两列并获取第一列的值

我有一个从select接收数据的适配器,该数据被添加到listview中

我希望listview是两列的,每当我单击一行时,它就会取第一列的值

我的listview的填充方式如下:

  adapter = new ArrayAdapter(this, Android.Resource.Layout.SimpleListItemMultipleChoice, observacao);
            lv.Adapter = adapter;
            lv.ChoiceMode = ChoiceMode.Multiple;

有关于Xamarin Android的官方文件

请按照官方教程为
ListView
项创建自定义布局,并使用自定义适配器

在自定义适配器的
GetView
方法中,可以膨胀行布局:

View view = convertView;
if (view == null)
    view = context.LayoutInflater.Inflate(Android.Resource.Layout.YourCustomLayout, null);
我希望listview是两列的,每当我单击一行时,它就会取第一列的值

列表视图的
项目点击
事件中,您可以获得所选项目的位置:

private void MListView_ItemClick(object sender, AdapterView.ItemClickEventArgs e)
{
    var position = e.Position;
}

该位置可用于匹配添加到
列表视图中的
列表的相对项,然后您可以在那里找到数据。

您应该使用RecycleView,通过创建GridLayoutManger引用将RecycleView设置为GridView,还可以在其中指定列号

 recyclerView.setLayoutManager(new GridLayoutManager(getContext(),2));
            adapter = new FoodAdapter( context,filteredList);
            recyclerView.setAdapter(adapter);
            adapter.notifyDataSetChanged();

创建一个自定义适配器,并充气将行一分为二的布局。在
onBindViewHolder
中,在适配器的每一列中添加一个单击侦听器,并将事件委托给任何必须处理它的人。@谦虚的学生,你有一个例子可以给我吗?查找ListView自定义适配器,并使用任何布局(线性或相对)来处理这些列。没有准备好任何示例,这是一个非常基本的主题,在xamarin android的Web上很容易找到这些示例?好吧,我要去调查一下,我会给你一个回报。谢谢你的提示。你应该使用RecycleView并通过创建GridLayoutManger引用将RecycleView设置为GridView。感谢你的回复,我来到ananlisar这个例子,只是我注意到他的adapt在null
中。view=context.LayoutInflater.Inflate(Android.Resource.Layout.SimpleExpandableListItem2,null)在我的例子中,我使用一个播放器,它是一个来自数据库的数组,如果这个播放器只有一个项目,我想传递两个项目来查看。你能告诉我你从哪里得到数据库的数据吗?这是我的疑问。@RenatoLima,对于第一个问题,我不明白什么是空的,检查一下你身边有什么问题。对于问题“我想传递两个要查看的项目”。您可以为每行膨胀您自己的布局,此布局可以有两个控件来显示您的项目,在
GetView
方法中,您可以找到此行中的每个控件并为其设置数据。对于最后一个问题,这取决于您使用的是哪个数据库,除此之外,这与本例没有直接关系,请提出一个新问题。需要用xml创建网格吗?RecyclerView会取代listview吗?上下文filteredList是来自数据库的数据吗?要获取单击的项目是否与listview的位置相同?不,您不需要创建网格XML,因为它将由网格布局管理器完成,您只需在为单个实体和网格布局管理器创建网格时创建行项目XML,您可以指定列的数量,它将根据屏幕大小进行调整,您需要创建循环视图适配器。最好使用一行项目,而不是使用两行布局和管理位置,只需使用recycleview即可。如果在ListView中执行此操作,则会产生粗略滚动问题。