Java 如何将浮动操作按钮连接到Android项目中的活动

Java 如何将浮动操作按钮连接到Android项目中的活动,java,android,android-studio,android-layout,debugging,Java,Android,Android Studio,Android Layout,Debugging,我不确定我在哪里错过了什么,我希望playPauseButton在我点击时会响应,但当我点击时什么也没发生。我注意到我的调试控制台日志中有一些错误,这些错误主要与mediaPlayer有关,但我不知道它们到底是什么意思,因为android编程还很新!下面是我的调试控制台日志和一些相关代码: // Removed Logcat!! 与类Player.java相关的一些代码: import android.media.MediaPlayer; import android.media.Audio

我不确定我在哪里错过了什么,我希望playPauseButton在我点击时会响应,但当我点击时什么也没发生。我注意到我的调试控制台日志中有一些错误,这些错误主要与mediaPlayer有关,但我不知道它们到底是什么意思,因为android编程还很新!下面是我的调试控制台日志和一些相关代码:

// Removed Logcat!!

与类Player.java相关的一些代码:

import android.media.MediaPlayer;
import android.media.AudioManager;
import android.util.Log;

import java.io.IOException;

public class Player {

    // Creating new MediaPlayer

    MediaPlayer mediaPlayer = new MediaPlayer();

    // Creating a public static player as reference to this Player class

    public static Player player;
    String url = "";

    public Player () {
        this.player = this;
    }

    public void playStream (String url) {
        if (mediaPlayer != null) {
            try {
                mediaPlayer.stop();
            } catch (Exception e) {

            }

            // Releasing everything from the mediaPlayer

            mediaPlayer = null;
        }

        // Creating new Media Player

        mediaPlayer = new MediaPlayer();
        mediaPlayer.setAudioStreamType(AudioManager.STREAM_MUSIC);

        // Try & Catch errors

        try {
            mediaPlayer.setDataSource(url);
            mediaPlayer.setOnPreparedListener(new MediaPlayer.OnPreparedListener() {
                @Override
                public void onPrepared(MediaPlayer mp) {
                    mediaPlayer.start();
                }
            });
            mediaPlayer.prepareAsync();
        } catch (IOException e) {
            e.printStackTrace();
        }
    }

    public void pausePlayer () {
        try {
            mediaPlayer.pause();
        } catch (Exception e) {
            Log.d("EXCEPTION", "Failed to pause Media Player");
        }
    }

    public void playPlayer () {
        try {
            mediaPlayer.start();
        } catch (Exception e) {
            Log.d("EXCEPTION", "Failed to start Media Player");
        }
    }

    public void togglePlayer () {
        try {
            if (mediaPlayer.isPlaying())
                pausePlayer();
            else
                playPlayer();
        } catch (Exception e) {
            Log.d("Exception", "Failed to toggle Media Player");
        }
    }
}
MainActivity.java中的其他相关代码

public class MainActivity extends AppCompatActivity {
    static FloatingActionButton playPauseButton;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        Toolbar toolbar = findViewById(R.id.toolbar);
        setSupportActionBar(toolbar);

        playPauseButton = (FloatingActionButton) findViewById(R.id.fab);
        playPauseButton.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {

            }
        });

        // Songs location on our server

        String url = // "*My website/file.mp3";

        // Passing above url to our MediaPlayer

        if (Player.player == null)
            new Player();
        Player.player.playStream(url);
    }

    public static void flipPlayPauseButton (boolean isPlaying) {
        if (isPlaying) {
            playPauseButton.setImageResource(android.R.drawable.ic_media_pause);
        } else {
            playPauseButton.setImageResource(android.R.drawable.ic_media_play);
        }
    }
例如:

  playPauseButton.setOnClickListener(new View.OnClickListener() {
                @Override
                public void onClick(View view) {
if(video.isplaying()){pause function()}
else{play function()}

                }
            });

好的,我要感谢MohammadMoeinGolchin,他帮助我解决了这个问题。碰巧我没有在我的公共void onClik(视图)函数中完成我的函数。但您将看到它是在一个单独的Player.java类中编写的。为了解决这个问题,我所做的是在onClick(视图)中调用togglePlayer()函数,如下所示:

        @Override
        public void onClick (View view) {
           Player.player.togglePlayer();
        }

请附加错误,不是所有日志好的,让我现在编辑一下!给你,MohammadMoeinGolchin!关于如何显示错误日志,请参见此处:您没有特定的错误,问题是什么?欢迎您,这是正确的,但您正在调用togglePlayer函数,您应该在该函数中设置命令。