android l button 动画,android-从动态视图识别按钮

该博客介绍了如何使用静态内部类ButtonTag来存储按钮的类型和关联按钮,从而在Android应用中实现按钮间的交互。通过在按钮设置点击监听器时判断Tag类型,可以动态地切换按钮的启用状态,实现一对按钮的联动效果。这种方法简化了代码并提高了可维护性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

我假设您在点击处理中使用了按钮标签.为了保留标签数据并在按钮之间添加所需的接线,您可以创建一个可用作标签的数据结构:

static class ButtonTag {

String buttonType;

Button partner;

ButtonTag(String type, Button button) {

buttonType = type;

partner = button;

}

}

然后,您可以重新组织您的设置代码:

for(int i = 1; i <= 2 ; i++) {

Button button1 = new Button(this);

button1.setId(i);

layout.addView(button1);

Button button2 = new Button(this);

button2.setId(i);

button2.setEnabled(false);

button1.setTag(new ButtonTag("age", button2));

button2.setTag(new ButtonTag("country", button1));

layout.addView(button2);

}

单击处理显然将需要更改,以将getTag()强制转换为ButtonTag而不是String.

如果不需要“年龄”和“国家”信息来区分按钮类型,只需将每个按钮设置为另一个的标签即可.

编辑:

对于后一种方案,这是在点击侦听器中使用它的方式:

public void onClick(View v) {

Object tag = v.getTag();

if (tag instanceof Button) {

Button btn = (Button) tag;

btn.setEnabled(true);

v.setEnabled(false);

}

}

如果出于其他原因,您需要标记的“年龄”和“国家/地区”部分,则代码将略有不同:

public void onClick(View v) {

Object tag = v.getTag();

if (tag instanceof ButtonTag) {

ButtonTag bTag = (ButtonTag) tag;

bTag.partner.setEnabled(true);

v.setEnabled(false);

}

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值