gpt4 book ai didi

android - 动态创建 Buttons 并设置 onClickListener

转载 作者:IT老高 更新时间:2023-10-28 22:00:31 26 4
gpt4 key购买 nike

我在处理 Android 上动态创建的按钮时遇到问题。我正在创建 N 个按钮,单击按钮时我必须执行相同的方法,但我必须知道单击了哪个按钮。

for (int i = 0; i < NO_BUTTONS; i++){
Button btn = new Button(this);
btn.setId(2000+i);

...

btn.setOnClickListener((OnClickListener) this);
buttonList.addView(btn);
list.add(btn);

目前我正在为每个按钮添加 ID,并使用下面的方法查看单击了哪个按钮。 (行 btn.setId(2000+i);btn.setOnClickListener((OnClickListener) this);)。这个方法也在activity中实现。

@Override
public void onClick(View v) {
switch (v.getId()){
case 2000: selectButton(0);
break;

...

case 2007: selectButton(7);
break;
}
}

这对我来说看起来不太好,所以我想问有没有更好的方法来做到这一点?或者如何向 onclick 事件发送一些信息?有什么建议吗?

最佳答案

您可以创建一个返回 onclickListener 并将按钮作为参数的方法。然后使用该方法在您拥有的第一个循环中设置 onClicklistener ..

更新:代码可能是这样的:

View.OnClickListener getOnClickDoSomething(final Button button)  {
return new View.OnClickListener() {
public void onClick(View v) {
button.setText("text now set.. ");
}
};
}

作为 Activity 中的方法,然后像这样在循环中使用它

button.setOnClickListener(getOnClickDoSomething(button));

关于android - 动态创建 Buttons 并设置 onClickListener,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4401028/

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