Android,使用以编程方式生成的视图在视图上进行 switch/case

发布于 2024-10-12 09:41:57 字数 283 浏览 4 评论 0原文

通常,当我在单击时切换/设置视图时,不会有任何问题,因为它们是在 XML 中定义的并且具有 ID,因此我使用:

switch(v.getID())
{
case(R.id.someButton):
{
  // do something
}
default: // bla
}

但是,我现在以编程方式定义视图,因此它们没有静态 ID。

我现在应该如何打开这些视图?如果我在视图上尝试 getID() ,这是不允许的,因为它不是静态的。

有想法吗?谢谢。

Normally, when I switch/case my views onClick, I have no problems because they were defined in the XML and have ID's so I use:

switch(v.getID())
{
case(R.id.someButton):
{
  // do something
}
default: // bla
}

However, I am now defining my views programatically and so they don't have a static ID.

How should I now switch on these views? if I tried getID() on the views it's not allowed because it isn't static.

Ideas? Thanks.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

避讳 2024-10-19 09:41:57

编辑:
您应该创建 ids.xml 文件并在您的以编程方式创建视图时编写代码。

EDIT:
You should create ids.xml file and refer it in your code while creating view programmatically.

醉生梦死 2024-10-19 09:41:57

您可以在创建视图时执行 View.setId() 。

You could do View.setId() when you create your views.

三岁铭 2024-10-19 09:41:57

然后,不要使用 switch 语句(IMO,它看起来很糟糕,只是 IMO)。因此,如果您以编程方式生成视图,也请以编程方式设置点击侦听器:

Button button = new Button(this);
button.setOnClickListener(new OnClickListener(){
    public void onClick(View v){
        // execute specific behavior
    }
});

Then, don't use the switch statement (IMO, it looks bad, just IMO). So, if you are generating views programmatically, set a click listener programmatically too:

Button button = new Button(this);
button.setOnClickListener(new OnClickListener(){
    public void onClick(View v){
        // execute specific behavior
    }
});
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文