Java 我可以切换onClick侦听器吗?

Java 我可以切换onClick侦听器吗?,java,android,arrays,xml,string,Java,Android,Arrays,Xml,String,如何在交换onClick侦听器的同时还能知道哪个按钮是哪个按钮? 我最初的问题是: 我试图删除并重新添加彼此位置的视图(交换两个按钮),但过程非常缓慢。所以我决定尝试更改按钮的属性,而不是交换按钮本身。这将需要我跟踪一个按钮并交换侦听器 我有一个交换按钮(红色按钮)。单击时,它会使用其他三个按钮中的一个,并与它们交换。其他三个按钮没有其他功能。 这是我的原始代码(删除/重新添加视图而不是切换属性): 所以,我有两个选择: 以某种方式使响应更快(我不知道如何…因此) 通过交换单击侦听器和图像,

如何在交换onClick侦听器的同时还能知道哪个按钮是哪个按钮?


我最初的问题是:

我试图删除并重新添加彼此位置的视图(交换两个按钮),但过程非常缓慢。所以我决定尝试更改按钮的属性,而不是交换按钮本身。这将需要我跟踪一个按钮并交换侦听器

我有一个交换按钮(红色按钮)。单击时,它会使用其他三个按钮中的一个,并与它们交换。其他三个按钮没有其他功能。

这是我的原始代码(删除/重新添加视图而不是切换属性):

所以,我有两个选择:

  • 以某种方式使响应更快(我不知道如何…因此)
  • 通过交换单击侦听器和图像,以某种方式更改按钮的属性。不知何故,我能够跟踪新的交换按钮,这样我就可以再次交换

  • 非常感谢,我真的很感谢你的帮助

    给每个按钮一个侦听器。然后,在监听器中,只需检查被按下按钮的背景(应该作为onClick的参数传入)是否为红色背景

    Drawable redBackgroundDrawable = new Drawable(R.drawable.redImage)
    
    
    
    public void onClick(View v){
    
    
    
    if(v.getBackground == redBackgroundDrawable){
    
    //Execute code
    
    }else{
    
    //We don't care about it!
    
    }
    
    }
    

    我发现比较位图比比较绘图更容易…所以你可以将redBackgroundDrawable设置为一个
    bitmapImage

    如果你的问题包含大量阅读内容,你将不会得到太多关注。我强烈建议读一句:“假装你在和一位忙碌的同事谈话,并且必须用一句话来总结你的整个问题”@VinceEmigh感谢你的反馈。我已经编辑过使它更短。@VinceEmigh我应该做什么来交换侦听器?我不是android开发人员,所以我不能给你最好的解决方案。我也不确定你想做什么(你想把监听器映射到按钮,然后切换哪个按钮有哪个监听器?@VinceEmigh我怎么切换哪个按钮有哪个监听器?如果不清楚,您是否阅读了相关问题?它有更多的细节。我想让这个过程更快,如果我做不到,我的另一个选择是通过交换点击监听器和图像来改变按钮的属性。不知何故,我能够跟踪新的交换按钮,这样我就可以再次交换。非常感谢!谢谢你,我很喜欢你的答案
    Drawable redBackgroundDrawable = new Drawable(R.drawable.redImage)
    
    
    
    public void onClick(View v){
    
    
    
    if(v.getBackground == redBackgroundDrawable){
    
    //Execute code
    
    }else{
    
    //We don't care about it!
    
    }
    
    }