You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
132 lines
4.1 KiB
132 lines
4.1 KiB
package com.example.drink_order_system;
|
|
|
|
import android.util.Log;
|
|
import android.view.LayoutInflater;
|
|
import android.view.View;
|
|
import android.view.ViewGroup;
|
|
import android.widget.TextView;
|
|
|
|
import androidx.core.content.ContextCompat;
|
|
import androidx.recyclerview.widget.RecyclerView;
|
|
|
|
import java.util.ArrayList;
|
|
|
|
public class LeftAdapter extends RecyclerView.Adapter<LeftAdapter.LeftViewHolder> {
|
|
|
|
private ArrayList<LeftBean> mList;
|
|
private OnItemClickListener onItemClickListener;
|
|
|
|
public LeftAdapter( ArrayList<LeftBean> list) {
|
|
this.mList = list;
|
|
|
|
}
|
|
|
|
public void setOnItemClickListener(OnItemClickListener onItemClickListener) {
|
|
this.onItemClickListener = onItemClickListener;
|
|
}
|
|
|
|
private LeftBean getItem(int position) {
|
|
return mList.get(position);
|
|
}
|
|
|
|
@Override
|
|
public LeftViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
|
|
View view= LayoutInflater.from(parent.getContext())
|
|
.inflate(R.layout.left_list_item,parent,false);
|
|
|
|
return new LeftViewHolder(view);
|
|
|
|
}
|
|
|
|
@Override
|
|
public void onBindViewHolder(LeftViewHolder holder, int position) {
|
|
LeftBean target = getItem(holder.getAdapterPosition());
|
|
if (holder instanceof LeftAdapter.LeftViewHolder) {
|
|
((LeftAdapter.LeftViewHolder) holder).bindBean(target);
|
|
//绑定监听事件
|
|
holder.itemView.setOnClickListener(new View.OnClickListener() {
|
|
@Override
|
|
public void onClick(View v) {
|
|
|
|
Log.v("onClick",holder.getAdapterPosition()+"\t");
|
|
if (onItemClickListener != null){
|
|
onItemClickListener.onItemClicked(getItem(holder.getAdapterPosition()).getRightPosition());
|
|
}
|
|
for (LeftBean bean:mList){
|
|
bean.setSelect(false);
|
|
}
|
|
getItem(holder.getAdapterPosition()).setSelect(true);
|
|
notifyDataSetChanged();
|
|
}
|
|
});
|
|
} else {
|
|
throw new IllegalStateException("Illegal state Exception onBindviewHolder");
|
|
}
|
|
}
|
|
|
|
@Override
|
|
public int getItemCount() {
|
|
return mList.size();
|
|
}
|
|
|
|
public static class LeftViewHolder extends RecyclerView.ViewHolder {
|
|
private final TextView tvTitle;
|
|
//private View cl_left_item;
|
|
|
|
LeftViewHolder(View itemView) {
|
|
super(itemView);
|
|
tvTitle = (TextView) itemView.findViewById(R.id.TV_drink_type);
|
|
}
|
|
|
|
void bindBean(LeftBean target)
|
|
{
|
|
tvTitle.setText(target.getTitle());
|
|
if (target.isSelect()){
|
|
itemView.setBackgroundColor(ContextCompat.getColor(itemView.getContext(), R.color.gray));
|
|
} else {
|
|
itemView.setBackgroundColor(ContextCompat.getColor(itemView.getContext(), R.color.white));
|
|
}
|
|
}
|
|
}
|
|
|
|
interface OnItemClickListener {
|
|
void onItemClicked(int rightPosition);
|
|
}
|
|
|
|
public void setCurrentPosition(int rightPosition){
|
|
for (int i = 0; i < mList.size(); i++){
|
|
LeftBean bean = mList.get(i);
|
|
if(i < mList.size()-1)
|
|
{
|
|
LeftBean nextBean = mList.get(i+1);
|
|
if (bean.getRightPosition() <= rightPosition && rightPosition < nextBean.getRightPosition()){
|
|
bean.setSelect(true);
|
|
} else {
|
|
bean.setSelect(false);
|
|
}
|
|
}
|
|
else
|
|
{
|
|
if(bean.getRightPosition() <= rightPosition)
|
|
{
|
|
bean.setSelect(true);
|
|
}
|
|
else {
|
|
bean.setSelect(false);
|
|
}
|
|
}
|
|
}
|
|
notifyDataSetChanged();
|
|
}
|
|
|
|
public String getCurrentTitle(){
|
|
String currentTitle = "";
|
|
for (LeftBean bean:mList){
|
|
if (bean.isSelect()){
|
|
currentTitle = bean.getTitle();
|
|
break;
|
|
}
|
|
}
|
|
return currentTitle;
|
|
}
|
|
} |