java - 单个图像按钮用作开始-停止-开始

标签 java android imagebutton

在我的 android 项目中,我拍摄了 2 个图像按钮(开始和停止)。 当我按下 START IMAGE BUTTON 然后它转换为 STOP IMAGE BUTTON 但是当我按下 STOP IMAGE BUTTON 它没有转换为 START BUTTON。所以让我知道问题在哪里。

  mImageButton.setOnFocusChangeListener(
  new OnFocusChangeListener()
  {
  @Override
  public void onFocusChange(View v, boolean hasFocus) {
  // TODO Auto-generated method stub
  if (hasFocus==true)
  {
      mImageButton.setImageResource(R.drawable.stop);
  }
 else
 {
  mImageButton.setImageResource(R.drawable.play);
 }
  }
 });

 mImageButton.setOnClickListener(
 new OnClickListener() {
 @Override
 public void onClick(View v) {
 // TODO Auto-generated method stub
 mImageButton.setImageResource(R.drawable.stop);
   }
   });     
 }
}

最佳答案

在 Android 中,onFocusChangeonCLick 之前被调用。无论您在 onFocusChange 方法中设置什么,都将被忽略,因为接下来将调用 onClick,并将图像 bak 更改为 R.drawable.stop.

您根本不应该将 onFocusChange 用于您正在尝试执行的操作。仅使用 onClick。

private boolean pCurrentlyPlaying = false;

...

mImageButton.setOnClickListener(
    new OnClickListener() {
       @Override
       public void onClick(View v) 
       {
           int image = pCurrentlyPlaying ? R.drawable.stop : R.drawable.play;
           mImageButton.setImageResource(image);
           pCurrentlyPlaying = !pCurrentlyPlaying ;
       }
    });    

您还可以使用 ToggleButton,here is an example如何在 XML 中定义它。

关于java - 单个图像按钮用作开始-停止-开始,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16052311/

相关文章:

java - 为什么我的所有标签在 boderLayout WEST 时都间隔 4 个选项卡?

java - 为什么最小化、还原可以在不为框架实现任何方法的情况下工作?

java - 从 Java 文本文件中获取时间值

java - 如何从JAVAFx中的TextField接受SOH字符

android - PopupWindow 或 DialogFragment 上的卡片翻转动画

android - 如何使用 apache.Http 工具或 Android.Http 工具获取 TTFB(Time To First Byte)?

android - 如何在 android 中以编程方式删除/删除特定的 cookie?

android - 如何检测手指何时从 ImageButton 上滑落?

swift - 如何初始化图像按钮?

php - 如何使用php、mysql更新数据库