1

在设置两个图像按钮的可见性时,我遇到了一个问题。这个想法是实现播放/暂停控制。问题在于,设置可见性实际起作用的唯一部分是按钮的单击侦听器。如果我尝试在其他地方更改它,则不会发生任何事情。知道为什么会这样吗?

playBtn.setOnClickListener(new OnClickListener() {//PLAY BUTTON LISTENER
    public void onClick(View v) {
 playBtn.setVisibility(ImageButton.GONE);
 pauseBtn.setVisibility(ImageButton.VISIBLE);
 mp.start();
    }});

pauseBtn.setOnClickListener(new OnClickListener() {//PAUSE BUTTON LISTENER
 public void onClick(View v) {
  pauseBtn.setVisibility(ImageButton.GONE);
  playBtn.setVisibility(ImageButton.VISIBLE);
  mp.pause();
 }});

final class SeekBarTask extends TimerTask {
  public SeekBarTask(int duration) {

  }
  @Override
  public void run() {
   if(seekBar.getProgress() >= mp.getDuration()) {//IF SONG HAS FINISHED...
    pauseBtn.setVisibility(ImageButton.GONE);//THESE ONES
    playBtn.setVisibility(ImageButton.VISIBLE);//DOESN'T WORK
    mp.stop();
   }
   else {
   seekBar.incrementProgressBy(100);
   }
  }
 }
4

4 回答 4

1

我建议只更改 one 的图标ImageButton

于 2010-04-24T11:26:41.653 回答
0

我认为只有两件事中的一件会发生。要么此代码永远不会被命中,要么变量没有引用您期望它们引用的相同对象实例。您是否在该条件内设置了断点?我会检查断点是否被击中,然后检查变量是否指向正确的按钮实例。

在没有看到其余代码的情况下,我不得不问...为什么要检查进度条以获取“已完成播放”条件,而不是在完成回调时使用媒体播放器?

我正在做一些非常相似的事情,我使用 MediaPlayer 的 OnCompletionListener 来翻转按钮的可见性。

于 2010-04-24T13:28:21.433 回答
0

我不记得 Android GUI 操作的细节,但它是否必须这样做,你是从另一个线程做的,而你不应该这样做?

于 2010-04-24T13:45:39.527 回答
0

我注意到当您为其设置动画时,将 ImageButton 设置为 View.INVISIBLE 不起作用。您必须删除动画然后使其不可见。我认为糟糕的陷阱...

于 2012-07-08T11:41:43.967 回答