android - 一个按钮的多个 OnClickListener

标签 android

我正在尝试制作一个倒计时应用程序。我有一个按钮,按下时开始倒计时,倒计时文本也会出现在同一个按钮上。所以当用户再次按下时,我想暂停倒计时并隐藏按钮上的文本,如果用户再次按下按钮,倒计时将开始,文本将再次显示。

所以问题是如何为一个按钮执行多个 OnClick 事件? 我尝试了下面的代码,但只有一个 onClick 有效,如果我再次按下它永远不会继续第二个 onClick

play=(Button)findViewById(R.id.play);

        play.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {

             //something
   }
        });

 play.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {

             //something
   }
        });

任何帮助将不胜感激!谢谢!

最佳答案

监听器被覆盖。所以就用两个不同的,根据状态设置。

public void onCreate( ... ){
    Button mButton = ...
    mButton.setOnClickListener( startListener );

}

View.OnClickListener startListener = new View.OnClickListener() {

    public void onClick( View v ){
       // start countdown
       // show text

       mButton.setOnClickListener( stopListener );
    }
}

View.OnClickListener stopListener = new View.OnClickListener() {

    public void onClick( View v ){
       // stop countdown
       // hide text

       mButton.setOnClickListener( startListener );
    }
}

或者您可以只使用一个监听器并根据变量更改行为

public void onCreate( ... ){
    Button mButton = ...
    mButton.setOnClickListener( listener );

}

View.OnClickListener listener = new View.OnClickListener() {

    public void onClick( View v ){

        if ( isRunning ){ 
           // start countdown
           // show text
        } else { 
           // stop countdown
           // hide text
        }
    }
}

关于android - 一个按钮的多个 OnClickListener,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39599289/

相关文章:

Android 操作表

java - 包含TextView的ScrollView不滚动

Android布局将一个布局放置在另外两个布局的中间

android - 如何在微调器android中启用/禁用点击?

android - 使用命令提示符从 DDMS 中删除文件?

java - 如何在android中的字符串中隐藏应用程序网址

java - 如何生成里面有logo的二维码?

android - 使用 Layout inflator 将外部 XML 布局转换为位图

android - 带有 Beacons MAC 的 Google Awareness API

java - 如何在android上制作一个按下和释放的自定义按钮?