点唱房功能
This commit is contained in:
@@ -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相关代码,因为不再需要滑动操作
|
||||
}
|
||||
Reference in New Issue
Block a user