Android 单击更改imagebutton资源
我想更改与ImageButton onClick关联的图像。我试着这样做,但不起作用:Android 单击更改imagebutton资源,android,onclick,imagebutton,Android,Onclick,Imagebutton,我想更改与ImageButton onClick关联的图像。我试着这样做,但不起作用: ImageButton play; @Override public View getView(final int position, View convertView, ViewGroup parent) { // TODO Auto-generated method stub View vi = convertView; if (vi == null) vi =
ImageButton play;
@Override
public View getView(final int position, View convertView, ViewGroup parent) {
// TODO Auto-generated method stub
View vi = convertView;
if (vi == null)
vi = inflater.inflate(R.layout.listview_row, null);
play = (ImageButton) vi.findViewById(R.id.imagePlay);
play.setImageResource(R.drawable.play);
play.invalidate();
play.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
if(isPlaying){
mMediaPlayer.stop();
mMediaPlayer.release();
mMediaPlayer = null;
play.setImageResource(R.drawable.play);
play.invalidate();
isPlaying = false;
}
else{
mMediaPlayer = MediaPlayer.create(context, songs[position]);
mMediaPlayer.start();
isPlaying = true;
play.setImageResource(R.drawable.pause);
play.invalidate();
mMediaPlayer.setOnCompletionListener(new OnCompletionListener() {
public void onCompletion(MediaPlayer mp) {
isPlaying = false;
play.setImageResource(R.drawable.play);
play.invalidate();
}
});
}
}
});
这样,图像保持为播放按钮,并且在暂停按钮中永不更改。如何修复此问题?您已经在getView方法之外定义了ImageButton播放。对于您添加的每一行,您都将为其分配一个新的ImageButton,即添加的行中的一个
当onClickView v方法被激发时,play是最后添加的按钮。因此,将单击的按钮分配给onClick方法中的第一个播放按钮
谢谢,它工作得很好,但是这种方式在完成时仍然不会改变分配的资源。有可能修复它吗?当你说onCompletion不起作用是什么意思?图像没有改变吗?还是说从未调用过onComplete?
ImageButton play;
@Override
public View getView(final int position, View convertView, ViewGroup parent) {
// SAME
play.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
play = (ImageButton) v.findViewById(R.id.imagePlay);
if(isPlaying){
// SAME
}
else{
// SAME
}
}
});