单击按钮在 android studio 中不起作用

安维什·桑卡拉

对于我正在创建的应用程序,它不允许我指定如何处理按钮,而是给我错误。该应用程序有助于在三首音乐歌曲之间切换。

代码挂了

    package com.example.atvan.babysleeper;

import android.media.MediaPlayer;
import android.os.Handler;
import android.os.Message;
import android.provider.MediaStore;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.SeekBar;
import android.widget.TextView;

import com.example.atvan.babysleep.R;

public class MainActivity extends AppCompatActivity {

    Button playBtn;
    Button one;
    Button two;
    Button three;
    SeekBar positionBar;
    SeekBar volumeBar;
    TextView elapsedTimeLabel;
    TextView remainingTimelabel;
    MediaPlayer mp;
    int totalTime;

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

        playBtn = (Button) findViewById(R.id.playBtn);
        elapsedTimeLabel = (TextView) findViewById(R.id.elapsedTimeLabel);
        remainingTimelabel = (TextView) findViewById(R.id.remainingTimeLabel);
        one = (Button) findViewById(R.id.one);
        two = (Button) findViewById(R.id.two);
        three = (Button) findViewById(R.id.three);


        //Media player

        public void setOne(View view){
            mp = MediaPlayer.create(this, R.raw.music3);
        }
        public void setTwo(View view){
            mp = MediaPlayer.create(this, R.raw.music2);
        }
        public void setThree(View view){
            mp = MediaPlayer.create(this, R.raw.music1);

        }


        mp.setLooping(true);
        mp.seekTo(0);
        mp.setVolume(0.5f,0.5f);
        totalTime = mp.getDuration();

        //position Bar
        positionBar = (SeekBar) findViewById(R.id.positionBar);
        positionBar.setMax(totalTime);
        positionBar.setOnSeekBarChangeListener(
                new SeekBar.OnSeekBarChangeListener() {
                    @Override
                    public void onProgressChanged(SeekBar seekBar, int progress, boolean fromUser) {
                        if (fromUser) {
                            mp.seekTo(progress);
                            positionBar.setProgress(progress);
                        }
                    }

                    @Override
                    public void onStartTrackingTouch(SeekBar seekBar) {

                    }

                    @Override
                    public void onStopTrackingTouch(SeekBar seekBar) {

                    }
                }
        );

        //Volume Bar
        volumeBar = (SeekBar) findViewById(R.id.volumeBar);
        volumeBar.setOnSeekBarChangeListener(
                new SeekBar.OnSeekBarChangeListener() {
                    @Override
                    public void onProgressChanged(SeekBar seekBar, int progress, boolean fromUser) {
                        float volumeNum = progress/100f;
                        mp.setVolume(volumeNum, volumeNum);
                    }

                    @Override
                    public void onStartTrackingTouch(SeekBar seekBar) {

                    }

                    @Override
                    public void onStopTrackingTouch(SeekBar seekBar) {

                    }
                }
        );

        //thread (update positionBar amd timeLabel)
        new Thread(new Runnable() {
            @Override
            public void run() {
                while (mp != null) {
                    try{
                        Message msg = new Message();
                        msg.what = mp.getCurrentPosition();
                        handler.sendMessage(msg);
                        Thread.sleep(1000);
                    }catch (InterruptedException e){}
                }
            }
        }).start();



    }

    private Handler handler;

    {
        handler = new Handler(new Handler.Callback() {
            @Override
            public boolean handleMessage(Message msg) {
                int currentPosition = msg.what;
                // Update positionBar.
                positionBar.setProgress(currentPosition);

                // Update Labels.
                String elapsedTime = createTimeLabel(currentPosition);
                elapsedTimeLabel.setText(elapsedTime);

                String remainingTime = "- " + createTimeLabel(totalTime - currentPosition);
                remainingTimelabel.setText(remainingTime);

                return true;
            }
        });
    }

    public String createTimeLabel(int time) {
        String timeLabel = "";
        int min = time / 1000 / 60;
        int sec = time /1000 % 60;

        timeLabel = min + ":";
        if (sec<10) timeLabel += "0";
        timeLabel += sec;

        return timeLabel;
    }

    public void playBtnClick(View view) {
        if (!mp.isPlaying()){
            //stopping
            mp.start();
            playBtn.setBackgroundResource(R.drawable.stop);
        } else {
            //playing
            mp.pause();
            playBtn.setBackgroundResource(R.drawable.play);

        }
    }

它给出的错误是我的媒体播放器部分有一个非法的表达开始。它也表示给予;那里的某个地方。当放在代码末尾时。它没有给出任何错误,但应用程序没有运行

错误在这里

错误

在此处输入图片说明

金贾拉索

这里几乎没有逻辑错误。首先,您不能在另一个方法中编写方法,因此删除以下代码行onCreate()并将其写入外部:

public void setOne(View view){ mp = MediaPlayer.create(this, R.raw.music3); } 
public void setTwo(View view){ mp = MediaPlayer.create(this, R.raw.music2); } 
public void setThree(View view){ mp = MediaPlayer.create(this, R.raw.music1); }

第二件事是你正在初始化你的mediaPlayer内部这些方法,所以你应该做的是最初调用setOne()方法,onCreate()并在当前播放的歌曲结束后调用其他方法。

请仔细阅读教程,虽然它显示了“在服务中构建媒体播放器”,但您可以在您的活动中执行此操作,并且对您来说,“第三步 – 构建媒体播放器”很重要。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

按钮单击处理程序在Android Studio中不起作用

来自分类Dev

在Android Studio中,ListView中的按钮不起作用

来自分类Dev

按钮不起作用(android studio)

来自分类Dev

onClick在android studio中不起作用

来自分类Dev

isReachable在android studio中不起作用

来自分类Dev

为什么我在Kotlin中的按钮不起作用?(Android Studio)

来自分类Dev

按钮在android片段中不起作用

来自分类Dev

按钮在Android AudioManager中不起作用

来自分类Dev

Android Studio不起作用

来自分类Dev

在Android Studio中单击按钮更改TextView文本(Kotlin)

来自分类Dev

通过单击按钮在 android studio 中的日期选择器

来自分类Dev

单击运行和调试按钮在 Android Studio 中引发 NullPointerException

来自分类Dev

Android USB Host示例在Android Studio中不起作用

来自分类Dev

wait()函数在android studio中的线程中不起作用

来自分类Dev

Idea Intellij插件在Android Studio 1.5.1中不起作用

来自分类Dev

Android Studio中的拖放功能不起作用

来自分类Dev

Tab键在Android Studio中不起作用

来自分类Dev

设置minSdkVersion在Android Studio中不起作用

来自分类Dev

phonegap ajax呼叫在Android Studio中不起作用

来自分类Dev

libs文件夹在android studio中不起作用

来自分类Dev

为什么getSize()方法在Android Studio中不起作用?

来自分类Dev

横向屏幕定向在Android Studio中不起作用

来自分类Dev

onClick函数在android studio中不起作用

来自分类Dev

Android Studio:模式中的TableRow不起作用

来自分类Dev

我的textview在android studio中不起作用

来自分类Dev

Gradle依赖项在Android Studio中不起作用

来自分类Dev

androidTestCompile在Android Studio 2.1.2中不起作用

来自分类Dev

onClick函数在android studio中不起作用

来自分类Dev

Android Studio:Horizontal函数中的scrollTo不起作用

Related 相关文章

  1. 1

    按钮单击处理程序在Android Studio中不起作用

  2. 2

    在Android Studio中,ListView中的按钮不起作用

  3. 3

    按钮不起作用(android studio)

  4. 4

    onClick在android studio中不起作用

  5. 5

    isReachable在android studio中不起作用

  6. 6

    为什么我在Kotlin中的按钮不起作用?(Android Studio)

  7. 7

    按钮在android片段中不起作用

  8. 8

    按钮在Android AudioManager中不起作用

  9. 9

    Android Studio不起作用

  10. 10

    在Android Studio中单击按钮更改TextView文本(Kotlin)

  11. 11

    通过单击按钮在 android studio 中的日期选择器

  12. 12

    单击运行和调试按钮在 Android Studio 中引发 NullPointerException

  13. 13

    Android USB Host示例在Android Studio中不起作用

  14. 14

    wait()函数在android studio中的线程中不起作用

  15. 15

    Idea Intellij插件在Android Studio 1.5.1中不起作用

  16. 16

    Android Studio中的拖放功能不起作用

  17. 17

    Tab键在Android Studio中不起作用

  18. 18

    设置minSdkVersion在Android Studio中不起作用

  19. 19

    phonegap ajax呼叫在Android Studio中不起作用

  20. 20

    libs文件夹在android studio中不起作用

  21. 21

    为什么getSize()方法在Android Studio中不起作用?

  22. 22

    横向屏幕定向在Android Studio中不起作用

  23. 23

    onClick函数在android studio中不起作用

  24. 24

    Android Studio:模式中的TableRow不起作用

  25. 25

    我的textview在android studio中不起作用

  26. 26

    Gradle依赖项在Android Studio中不起作用

  27. 27

    androidTestCompile在Android Studio 2.1.2中不起作用

  28. 28

    onClick函数在android studio中不起作用

  29. 29

    Android Studio:Horizontal函数中的scrollTo不起作用

热门标签

归档