gpt4 book ai didi

android - 如何处理由列表适配器项目内部的按钮触发的事件?

转载 作者:行者123 更新时间:2023-11-29 15:13:04 27 4
gpt4 key购买 nike

假设我们有一个包含多个项目的列表。每个项目都有几个 fragment 和一个标签。当用户单击每个标签时,我需要更改 ListView 之外的 button1 的文本。我如何从列表项内部接收标签点击事件并更改 ListView 和列表适配器之外的 View 。

enter image description here

我知道如何在适配器内部处理 ListView 适配器的内部事件。它就像在 GetView() 方法中分配事件处理程序一样简单,但它们在列表之外不可用。
感谢您的帮助

最佳答案

已解决

我创建了一个自定义事件 和 EventAgrs。当用户单击标签时,我调用此事件并在主 Activity 中处理该事件并更改 buton1 的文本。这比我想象的要容易。在 GetView() 中,我将点击事件分配给 label_Click() 事件处理程序。

GetView(){
.
.
label.Click += label_Click();
.
.
}

在 label_Click() 中,我调用了我之前实现的自定义事件:

private void label_Click()(object sender, EventArgs e)
{
LabelClickedEvent.Invoke(sender, new LabelClickEventArgs("aaa", "bbb"));
}

在 Adapter 列表中,我声明了这个自定义事件:(有关更多信息,请查看 this guide)

public event LabelClickedEventHandler LabelClickedEvent;
public delegate void LabelClickedEventHandler(object, sender,LabelClickEventArgs args);
public class LabelClickEventArgs : EventArgs
{
public string param1 { get; set; }
public string param2 { get; set; }
public LabelClickEventArgs(string param1 , string param2 )
{
this.param1 = param1 ;
this.param2 = param2 ;
}
}

在主要 Activity 中,我只是将事件分配给我的事件处理程序并执行所需的任何操作。

listAdapter.LabelClickedEvent += listAdapter_LabelClickedEvent;
.
.


void listAdapter_LabelClickedEvent(object sender, TheListAdapter.LabelClickEventArgs args)
{
sendButton.Text = args.param1;
}

希望对大家有帮助。

关于android - 如何处理由列表适配器项目内部的按钮触发的事件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28404483/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com