2016-08-27 5 views
1

Ich versuche, Spiel und Pause Aktion in einer Taste hinzufügen das ist mein Code Ich füge gerade Spiel Aktion, können Sie mir bitte helfen?Wie kann ich mehrere Aktionen für eine Taste hinzufügen

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

behalten Sie einen Boolean überprüfen Sie Ihren Zustand und führen Sie die Aktion in Bezug auf den Zustand mit einem einfachen wenn sonst –

Antwort

3

Sie können es durch dieses Ziel zu erreichen:

Set es Standard Play

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") 
       } 
      } 
     }); 

Für 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

Ich würde lieber die Schaltfläche reagieren auf eine boolesche Statusvariable als etwas, das bereits ist eine Reaktion auf den Status (Text oder in der Benutzeroberfläche ziehbar) ... –

0

Lösung

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(); 

      } 
     } 
    }); 
Verwandte Themen