【问题标题】:Java How to Show then Hide (GONE) View-AndroidJava 如何显示然后隐藏 (GONE) 视图-Android
【发布时间】:2018-06-07 10:26:22
【问题描述】:

我正在 Android Studio 中开发一个 APP(因为我不是 Java 专业人士,只是在学习......)我不确定我的代码是否无法正常工作——这对我来说似乎不是。有人可以帮忙吗?

我有一个音乐文件,当它播放时我不会显示进度条 - 然后用可见性隐藏它(GONE)。一切正常,除了如果 (!mediaPlayer.isPlaying)...

基本上在音频播放 10 秒后,进度条需要将视图改回消失。

   final ProgressBar Pbar;
   Pbar = (ProgressBar) findViewById(R.id.progressBar);

   final MediaPlayer mediaPlayer = MediaPlayer.create(this, 
   R.raw.soundttt);
    Button playsound = (Button) this.findViewById(R.id.play_sound_ten);
    playsound.setOnClickListener(new View.OnClickListener(){
        @Override
        public void onClick(View v) {
            mediaPlayer.start();
            if (mediaPlayer.isPlaying()) {
                Pbar.setVisibility(View.VISIBLE);
            }
            else if (!mediaPlayer.isPlaying()){
                Pbar.setVisibility(View.GONE);
            }
        }

    });

我已经尝试了三天,完成了我相当一部分的阅读,包括 MediaPlayer 上的众多线程。

StackOverFlow 1 任何帮助,将不胜感激!提前谢谢!

【问题讨论】:

    标签: java android visibility


    【解决方案1】:
    else if (!mediaPlayer.isPlaying()){
        Pbar.setVisibility(View.GONE);
    }
    

    上述代码将在媒体播放器开始播放后立即执行。此条件为假,因此视图的可见性不受影响。

    如果您不想在 10 秒后切换可见性,请使用 Handler 进行如下操作:

     new Handler().postDelayed(new Runnable() {
         @Override
         public void run() {
             Pbar.setVisibility(View.GONE);
         }
     },10000);
    

    【讨论】:

    • 非常感谢!我知道有些事情不正常。没有在 if 语句之后运行语句是我的错...请问是否还有其他方法可以实现处理程序?我刚刚阅读了处理程序,它们基本上按照我们希望的方式处理队列。跨度>
    • @samlf3rd 你的意思是,你想要 Handler 的替代品吗?
    • 我只是想知道,如果我遇到处理程序无法工作的问题,而其他事情会接管处理程序停止的地方,是否会在某个地方出现?
    • @samlf3rd 如果您正在处理 UI 组件,您可以使用 Handler 或 runOnUiThread(new Runnable(){...})
    • 太棒了!非常感谢您抽出宝贵时间@Sagar!知道代码有效,我今晚终于可以放松了,我很高兴能了解更多!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-11-20
    • 2017-01-12
    • 2013-09-22
    • 1970-01-01
    相关资源
    最近更新 更多