В моем приложении для Android я использую Listview
, и каждая строка списка будет иметь текстовое представление и кнопку воспроизведения/паузы. Здесь я показываю аудиофайл в каждой строке списка. Когда пользователь нажимает кнопку воспроизведения, аудиофайл запускается, а значок кнопки воспроизведения изменяется на паузу. Если я снова нажму ту же кнопку, он остановит этот аудиофайл и значок паузы. кнопка будет играть.
Проблема в том, что если я получаю доступ к кнопке воспроизведения 1-й строки и нажимаю кнопку воспроизведения другой строки, значок 1-й строки должен измениться. Я не знаю, как реализовать эту функцию. Пожалуйста, помогите мне решить эту проблему.
Метод getView() пользовательского адаптера:
public View getView(int position, View convertView, ViewGroup parent) {
ViewHolder holder = null;
RowItem_ringtone rowItem = getItem(position);
LayoutInflater mInflater = (LayoutInflater) context
.getSystemService(Activity.LAYOUT_INFLATER_SERVICE);
if (convertView == null) {
convertView = mInflater.inflate(R.layout.ringtone_row, null);
holder = new ViewHolder();
holder.txtTitle = (TextView) convertView
.findViewById(R.id.ringtoneTitle);
holder.btnPlay = (ImageButton) convertView
.findViewById(R.id.btnPlay);
holder.btnSet = (ImageButton) convertView.findViewById(R.id.btnSet);
convertView.setTag(holder);
} else
holder = (ViewHolder) convertView.getTag();
holder.txtTitle.setText(rowItem.getRingTitle());
holder.btnPlay.setTag(rowItem.getRingId());
holder.btnSet.setTag(rowItem.getRingId());
holder.btnPlay.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
Toast.makeText(getContext(), v.getTag().toString(),
Toast.LENGTH_LONG).show();
if (CustomListViewAdapter_ringtone.mp != null) {
if (CustomListViewAdapter_ringtone.mp.isPlaying()) {
CustomListViewAdapter_ringtone.mp.stop();
CustomListViewAdapter_ringtone.mp.release();
}
}
mp = MediaPlayer.create(getContext(),
Integer.parseInt(v.getTag().toString()));
mp.start();
v.setBackgroundResource(R.drawable.set_icon);
btnId = Integer.parseInt(v.getTag().toString());
}
});
return convertView;
}