Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Toggle button visibility in android activity

I have an activity with two play and pause buttons (currently invisible) and a seekbar. When I press the play button, the pause button should become visible, and when I press the pause button it should turn invisible.

How would I do that?

import android.media.MediaPlayer;
import android.os.Bundle;
import android.app.Activity;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.SeekBar;
import android.widget.SeekBar.OnSeekBarChangeListener;


    public class MainActivity extends Activity implements Runnable, OnClickListener, OnSeekBarChangeListener{
        private SeekBar seekBar;
        private Button startMedia;
        private Button pauseMedia;
        private MediaPlayer mp;

        @Override
        public void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_main);             

            AudioControl();         

        }

        public void AudioControl(){
            seekBar = (SeekBar) findViewById(R.id.seekBar1);
            startMedia = (Button) findViewById(R.id.button1);
            pauseMedia = (Button) findViewById(R.id.button2);
            seekBar.setOnSeekBarChangeListener(this);
            startMedia.setOnClickListener(this);
            pauseMedia.setOnClickListener(this); 
        }



        public void run() {
            int currentPosition= 0;
            int total = mp.getDuration();
            while (mp!=null && currentPosition<total) {
                try {
                    Thread.sleep(1000);
                    currentPosition= mp.getCurrentPosition();
                } catch (InterruptedException e) {
                    return;
                } catch (Exception e) {
                    return;
                }            
                seekBar.setProgress(currentPosition);
            }
        }

        public void onClick(View v) {
            if (v.equals(startMedia)) {
                if (mp != null && mp.isPlaying()) return;
                if(seekBar.getProgress() > 0) {
                    mp.start();
                    return;
                }
                mp = MediaPlayer.create(MainActivity.this, R.raw.lone);
                mp.start();                     
                seekBar.setProgress(0);
                seekBar.setMax(mp.getDuration());
                new Thread(this).start();
            }

            if (v.equals(pauseMedia) && mp!=null) {
                mp.pause();
            }       

        }

        public void onStartTrackingTouch(SeekBar seekBar) {
        }

        public void onStopTrackingTouch(SeekBar seekBar) {
        }

        public void onProgressChanged(SeekBar seekBar, int progress,
                boolean fromUser) {
            if(fromUser) mp.seekTo(progress);

        }
    }

I don't know where should I put blow code. please help me!

like image 627
hossein Avatar asked Jul 12 '13 21:07

hossein


People also ask

What is toggle button in Android?

A toggle button allows the user to change a setting between two states. You can add a basic toggle button to your layout with the ToggleButton object. Android 4.0 (API level 14) introduces another kind of toggle button called a switch that provides a slider control, which you can add with a Switch object.

How do I make a button invisible in XML?

xml version = "1.0" encoding = "utf-8" ?> In this code, initially, a variable temp is set to false. Now when the button is clicked, the code satisfies the if condition and makes the button invisible, and the temp value is reversed to true.

What is Android visibility?

A View's visibility status is of Integer type and can have one of three options: VISIBLE (0) - The View is visible to the user. INVISIBLE (4) - The View is invisible to the user, but still takes up space in the layout. GONE (8) - The View is invisible, and it does not take up space in the layout.


3 Answers

startMedia = (Button) findViewById(R.id.button1);
pauseMedia = (Button) findViewById(R.id.button2);

//Onclick Event ...

//Logic
if (flag === 'start') {
startMedia.setVisibility(View.VISIBLE);
pauseMedia .setVisibility(View.INVISIBLE);
} else {
startMedia.setVisibility(View.INVISIBLE);
pauseMedia .setVisibility(View.VISIBLE);
}

GONE will make the layout manager ignore the dimensions of the widget. INVISIBLE will make it so the widget is not visible, but the layout manager will still treat it as if it is there.

If you are familiar with CSS,

  • setVisibility(View.INVISIBLE) is like CSS opacity: 0
  • setVisibility(View.GONE) is like CSS display: none
  • setVisibility(View.VISIBLE) is like CSS display: block
like image 92
d.danailov Avatar answered Nov 04 '22 01:11

d.danailov


I Use for any view:

 public void toggleView(View view){
 if(view.getVisibility()==View.GONE)
   view.setVisibility(View.VISIBLE);
 else if(view.getVisibility()==View.VISIBLE)
   view.setVisibility(View.GONE);
  }
like image 36
Fabio Guerra Avatar answered Nov 04 '22 02:11

Fabio Guerra


Use this Simple Logic to Toggle Visibility...

 if (rvLocation.getVisibility()==View.VISIBLE)
        rvLocation.setVisibility(View.GONE);
 else
        rvLocation.setVisibility(View.VISIBLE);
like image 25
Abhishek Sengupta Avatar answered Nov 04 '22 01:11

Abhishek Sengupta