ImageButton.setVisibility()的问题

时间:2010-04-24 01:04:33

标签: android imagebutton

将两个图像按钮的可见性设置在另一个上面时,我遇到了问题。想法是实现播放/暂停控制。问题是设置可见性实际工作的唯一部分是按钮的单击侦听器。如果我试图在其他地方改变它没有任何反应。知道为什么会这样吗?

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 个答案:

答案 0 :(得分:1)

我建议只更改一个ImageButton的图标。

答案 1 :(得分:0)

我认为只有两件事中的一件可能发生。这个代码永远不会被命中,或者变量不是指你期望它们的相同对象实例。你在那个条件下放了一个断点吗?我会检查断点是否会在那里被击中,然后检查变量是否指向正确的按钮实例。

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

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

答案 2 :(得分:0)

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

答案 3 :(得分:0)

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

相关问题