gpt4 book ai didi

Android:知道以编程方式创建的按钮按下了哪个按钮

转载 作者:行者123 更新时间:2023-11-29 22:20:30 26 4
gpt4 key购买 nike

我正在尝试这样做:

以编程方式在布局上创建 4 个按钮。然后,为每个按钮创建一个 onclick 监听器。然后,根据按下哪个按钮,将执行一些逻辑。

我在我的 XML 文件中创建了一个 LinearLayout 并将其称为“布局”。

所以,我的代码是这样的:

    layout = (LinearLayout)findViewById(R.id.layout);

//Create the array of buttons
Button [] subjectButtons_BT = new Button[4];

for(int i=0; i<4; i++){
subjectButtons_BT[i] = new Button(this);
// Add the button to the layout
layout.addView(subjectButtons_BT[i]);
subjectButtons_BT[i].setOnClickListener(new Button.OnClickListener() {
public void onClick(View v) {
// if it is the first button, do LOGIC1
// if it is the second button, do LOGIC2 etc
}
});
}

到目前为止,我已经成功创建了 4 个按钮,我可以点击这些按钮。但是,我不知道 setOnClickListener 部分的逻辑如何。

我想知道按下了哪个按钮。所以,我尝试使用 v.getId() 但它总是返回 -1。

有人可以建议这是否是正确的方法吗?如果是这样,如何做逻辑?

谢谢。

最佳答案

您有两个选项来确定单击了哪个动态按钮。

 1) Set ID to the button and compare ID 
2) Set Tag to the button if you have come more information about button
and want to access it

1) 你可以给按钮设置id,在onClick()方法中你可以通过button.getId()方法获取id,你可以比较ids并执行根据点击的 Action 。

2) 如果你设置了标签,那么你必须通过调用button.getTag() 方法来获取标签,这样你就可以通过按钮传递对象

关于Android:知道以编程方式创建的按钮按下了哪个按钮,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7370219/

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