У меня есть просмотр списка в моей деятельности. Каждый элемент списка содержит кнопки воспроизведения / паузы, и эти кнопки запускают воспроизведение звука, вызывая метод активности, такой как MainActivity.play (), но когда я нажимаю кнопку «Стоп», он не работает. Почему?
Я попытался поставить кнопку паузы на активность, и она прекрасно работает.
Вот моя кнопка onClickListener, которая находится в адаптере
view.findViewById(R.id.btnPause).setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
((MainActivity)context).pause();
}
});
Вот метод паузы от действия
public void pause() {
if(mediaPlayer.isPlaying()){
mediaPlayer.pause();
} else {
mediaPlayer.start();
}
}
Это весь мой адаптер
public class lvAdapter extends BaseAdapter {
Context ctx;
LayoutInflater lInflater;
ArrayList<m> objects;
lvAdapter(Context context, ArrayList<m> products) {
ctx = context;
objects = products;
lInflater = (LayoutInflater) ctx
.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
}
// кол-во элементов
@Override
public int getCount() {
return objects.size();
}
// элемент по позиции
@Override
public Object getItem(int position) {
return objects.get(position);
}
// id по позиции
@Override
public long getItemId(int position) {
return position;
}
// пункт списка
@SuppressLint("SetTextI18n")
@Override
public View getView(final int position, View convertView, ViewGroup parent) {
View view = convertView;
if (view == null) {
view = lInflater.inflate(R.layout.audioItem, parent, false);
}
final View finalView = view;
view.findViewById(R.id.btnPlay).setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
File file = new File(ctx.getFilesDir() + "/voices/" + objects.get(position).t);
if (file.exists()) {
((MainActivity)ctx).play(file.getPath());
}
}
});
view.findViewById(R.id.btnPause).setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
((MainActivity)context).pause();
}
});
return view;
}
m getProduct(int position) {
return ((m) getItem(position));
}
}
И это просто не работает. медиаплеер не останавливается.