2016-08-27 4 views
1

Я пытаюсь добавить игру и приостановить действие одной кнопкой это мой код, я просто добавляю игровое действие, вы можете мне помочь?Как я могу добавить несколько действий для одной кнопки

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

      timerHasStarted = true; 
      countDownTimer.start(); 


      Resources res = getResources(); 
      Drawable drawable = res.getDrawable(R.drawable.custom_progressbar_drawable); 
      final ProgressBar mProgress = (ProgressBar) rootView.findViewById(R.id.circularProgressbar); 
      mProgress.setProgress(0); // Main Progress 
      mProgress.setSecondaryProgress(100); // Secondary Progress 
      mProgress.setMax(100); // Maximum Progress 
      mProgress.setProgressDrawable(drawable); 
      mProgress.setRotation(0); 

      ObjectAnimator animation = ObjectAnimator.ofInt(mProgress, "progress", 0, 100); 
      animation.setDuration(startTime); 
      animation.setInterpolator(new DecelerateInterpolator()); 
      animation.start(); 

     } 
    }); 
+0

keep boolean проверить ваше состояние и выполнить действие относительно состояния, используя простой, если else –

ответ

3

Вы можете достичь его следующим образом:

набор это по умолчанию играть

fab_play_pause.setOnClickListener(new View.OnClickListener() { 
      @Override 
      public void onClick(View view) { 
      String text = btnAdd.getText().toString(); 

       if(text.equalsIgnoreCase("Play")){ 
        //your code 
        fab_play_pause.setText("pause") 
       } 
       else if(text.equalsIgnoreCase("pause")) 
       { 
        //your code 
        fab_play_pause.setText("Play") 
       } 
      } 
     }); 

Для Drawble:

fab_play_pause.setOnClickListener(new View.OnClickListener() { 
       @Override 
       public void onClick(View view) { 
       int resId = (Integer) view.getTag(); 

        if(resId == R.drawable.play){ 
         //your code 
         //change background for pause 
        } 
        else if(resId == R.drawable.pause) 
        { 
         //your code 
         //change background for play 
        } 
       } 
      }); 
+1

'==' -> 'equals' – Shaishav

+0

Я бы предпочел, чтобы кнопка реагировала на переменную состояния логического типа, чем то, что уже реакция на состояние (текст или доступный в пользовательском интерфейсе) ... –

0

решение

private static final String PLAY_ICON = "playIcon"; 
    private static final String PAUSE_ICON = "pauseImage"; 

    fab_play_pause.setImageResource(R.drawable.ic_play_arrow_white_24dp); 
    fab_play_pause.setTag(PLAY_ICON); 
    fab_play_pause.setOnClickListener(new View.OnClickListener() { 
     @Override 
     public void onClick(View view) { 

      String tag = (String) view.getTag(); 

      if (view.getTag() == PLAY_ICON){ 
       Toast.makeText(getContext(), "play",Toast.LENGTH_LONG).show(); 
       fab_play_pause.setTag(PAUSE_ICON); 
      }else if (view.getTag() == PAUSE_ICON){ 
       Toast.makeText(getContext(), "pause",Toast.LENGTH_LONG).show(); 

      } 
     } 
    });