我的活动中有列表视图。每个listview项都包含播放/暂停按钮,这些按钮通过调用诸如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));
}
}
这是行不通的。媒体播放器没有暂停。