gpt4 book ai didi

android - 具有两种功能的动态按钮 ANDROID

转载 作者:行者123 更新时间:2023-11-29 21:13:25 24 4
gpt4 key购买 nike

我有一个动态按钮,它是由一个可以改变的变量创建的。我希望这些按钮有两个功能。我做了一个选项,但我不知道如何实现另一个选项。

第一次单击按钮时,我调用了一个执行某些操作的函数,第二次单击同一个按钮时,我想执行另一个操作。我想用创建的所有动态按钮重复此运行。

我的代码是:

 LinearLayout buttonsLayout = (LinearLayout)findViewById(R.id.linearlayoutUp);

for(int i=0;i<drawView.getNumeroMallas();i++){

Button buttonMalla = new Button(this);
buttonMalla.setText("Malla "+(i+1));
buttonMalla.setId(i+1);

final int index = i;

buttonMalla.setOnClickListener(new OnClickListener() {
public void onClick(View v) {

Malla malla = drawView.getMalla(index);
drawView.paintMallaSelected(malla);


}

}
});
buttonsLayout.addView(buttonMalla);

}


}

最佳答案

编辑 - 非常重要:

我再次阅读了您的代码,您可以使用 getTag/setTag记住按钮的最后状态(我错过了 for 部分,抱歉!)

for(int i=0;i<drawView.getNumeroMallas();i++){

Button buttonMalla = new Button(this);
buttonMalla.setText("Malla "+(i+1));
buttonMalla.setId(i+1);
buttonMaila.setTag(Boolean.FALSE);

然后在setOnClickListener

if (((Boolean)v.getTag()) == Boolean.TRUE)
{
// Do first action
v.setTag(Boolean.FALSE);
}
else
{
// Do second action
v.setTag(Boolean.TRUE);
}

一个想法可能是使用一个变量来知道哪个是最后一个 Action 。

一个 bool 变量

private boolean action = false;

如果 action 为 false,则执行第一件事并将其设置为 true。如果为真,则执行第二个操作并将其设置为假。它应该走出任何方法(类的全局)

有点像

private boolean action;
buttonMalla.setOnClickListener(new OnClickListener() {
public void onClick(View v) {

if (action == true)
{
// Do first action
}
else
{
// Do second action
}

action = !action;

Malla malla = drawView.getMalla(index);
drawView.paintMallaSelected(malla);


}

}
});

无论如何,如果它做了一些重要的事情,你应该更好地管理按钮(例如按钮操作不是基于 bool 变量而是处于特定状态。)前一段时间我在一个应用程序,我检查了用户是否手动取消选择了一些东西,让按钮再次像“选择”一样。我希望我给了你一个想法。

无论如何, bool 变量是最直接的方法。

关于android - 具有两种功能的动态按钮 ANDROID,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22103419/

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