在我的 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 中,onFocusChange
在 onCLick
之前被调用。无论您在 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/