点唱房功能

This commit is contained in:
2025-11-18 19:39:16 +08:00
parent 45923ae858
commit 88a94c7c10
160 changed files with 6801 additions and 355 deletions

View File

@@ -0,0 +1,102 @@
package com.xscm.modulemain.adapter;
import android.content.Context;
import android.app.AlertDialog;
import com.chad.library.adapter.base.BaseQuickAdapter;
import com.chad.library.adapter.base.BaseViewHolder;
import com.xscm.modulemain.R;
import com.xscm.moduleutil.bean.SongPlaylist;
import com.xscm.moduleutil.utils.ImageUtils;
import java.util.List;
/**
* 用户歌单适配器,支持长按显示编辑和删除选项
*/
public class UserPlaylistAdapter extends BaseQuickAdapter<SongPlaylist.SongPlaylistBean, BaseViewHolder> {
private OnItemClickListener mOnItemClickListener;
private OnEditClickListener mOnEditClickListener;
private OnDeleteClickListener mOnDeleteClickListener;
public UserPlaylistAdapter(Context context, List<SongPlaylist.SongPlaylistBean> data) {
super(R.layout.item_user_playlist, data);
this.mContext = context;
}
/**
* 显示选项对话框
*/
private void showOptionsDialog(int position) {
if (position < 0 || position >= getData().size()) {
return;
}
String[] options = {"编辑", "删除"};
AlertDialog.Builder builder = new AlertDialog.Builder(mContext);
builder.setTitle("选择操作")
.setItems(options, (dialog, which) -> {
switch (which) {
case 0: // 编辑
if (mOnEditClickListener != null) {
mOnEditClickListener.onEditClick(position);
}
break;
case 1: // 删除
if (mOnDeleteClickListener != null) {
mOnDeleteClickListener.onDeleteClick(position);
}
break;
}
})
.show();
}
@Override
protected void convert(BaseViewHolder helper, SongPlaylist.SongPlaylistBean item) {
helper.setText(R.id.tv_song_name,item.getSong_name()).setText(R.id.tv_count,"x"+item.getGift_num())
.setText(R.id.tv_gift_name,item.getGift_name())
.setText(R.id.tv_gift_value,item.getGift_price());
ImageUtils.loadHeadCC(item.getBase_image(),helper.getView(R.id.iv_gift));
// 设置点击事件
helper.itemView.setOnClickListener(v -> {
if (mOnItemClickListener != null) {
mOnItemClickListener.onItemClick(helper.getAdapterPosition());
}
});
// 设置长按事件
helper.itemView.setOnLongClickListener(v -> {
showOptionsDialog(helper.getLayoutPosition());
return true;
});
}
public void setOnItemClickListener(OnItemClickListener listener) {
this.mOnItemClickListener = listener;
}
public void setOnEditClickListener(OnEditClickListener listener) {
this.mOnEditClickListener = listener;
}
public void setOnDeleteClickListener(OnDeleteClickListener listener) {
this.mOnDeleteClickListener = listener;
}
public interface OnItemClickListener {
void onItemClick(int position);
}
public interface OnEditClickListener {
void onEditClick(int position);
}
public interface OnDeleteClickListener {
void onDeleteClick(int position);
}
// 移除了ItemTouchHelper相关代码因为不再需要滑动操作
}