练习题

  • 主页
    public class CategoryActivity extends AppCompatActivity implements IView {
    
        //注入P层
        IPresent present;
    
        //左边
        RecyclerView leftRecycler;
        LeftAdapter leftAdapter;
    
        //右边
        RecyclerView rightRecycler;
        RightAdapter rightAdapter;
    
        @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_category);
    
            initView();
    
            //初始化
            present = new MyPresent(this);
            present.getData();
        }
    
        private void initView() {
            //左边
            leftRecycler = (RecyclerView) findViewById(R.id.left_recycler);
            final LinearLayoutManager leftManager = new LinearLayoutManager(this);
            leftRecycler.setLayoutManager(leftManager);
            leftRecycler.addItemDecoration(new DividerItemDecoration(this, OrientationHelper.VERTICAL));
            leftAdapter = new LeftAdapter();
            leftRecycler.setAdapter(leftAdapter);
    
            leftAdapter.setListener(new LeftAdapter.ItemClickListener() {
                @Override
                public void onItemClick(SetMeal meal) {
                    Toast.makeText(CategoryActivity.this, meal.name, Toast.LENGTH_SHORT).show();
                    rightAdapter.addData(meal.spus);
                }
            });
    
    
            //右边
            rightRecycler = (RecyclerView) findViewById(R.id.right_recycler);
            rightAdapter = new RightAdapter();
    
            final LinearLayoutManager rightManager = new LinearLayoutManager(this);
            rightRecycler.setLayoutManager(rightManager);
            rightRecycler.addItemDecoration(new DividerItemDecoration(this, OrientationHelper.VERTICAL));
    
            rightRecycler.setAdapter(rightAdapter);
    
        }
    
        /**
         * 销毁
         */
        @Override
        protected void onDestroy() {
            super.onDestroy();
            present.onDestroy();//调用防止内存泄漏
        }
    
        @Override
        public void showData(List<SetMeal> meals) {
            //初始化数据
            leftAdapter.addData(meals);
            SetMeal meal = meals.get(0);
            meal.isClick = true;//设置默认点击
            rightAdapter.addData(meal.spus);
        }
    }
    

model接口

public interface ITask {
    public void getListData(String url, OkCallback callback);
}

Task

public class Task implements ITask{
    @Override
    public void getListData(String url, OkCallback callback) {
        OK.getOk().doGet(url,callback);
    }
}

p接口

public interface BasePresent {
    public void onDestroy();
}

p接口

public interface IPresent extends BasePresent{
    public void getData();
}

p类

public class MyPresent extends OkCallback implements IPresent {

    ITask task;
    IView view;

    public MyPresent(CategoryActivity activity) {
        task = new Task();
        view = activity;
    }

    /**
     * 获取数据
     */
    @Override
    public void getData() {
        task.getListData("http://39.108.3.12:3000/v1/food/32", this);
    }

    @Override
    public void onUI(String json) {
        Gson gson=new Gson();
        ResData data= gson.fromJson(json,ResData.class);
        view.showData(data.data);
        Log.d("UI", json);
    }

    @Override
    public void onFailed(String json) {
        Log.d("UI", json);
    }

    /**
     * 销毁,防止内存泄漏
     */
    @Override
    public void onDestroy() {
        //销毁视图
        view = null;
    }
}

v接口

public interface IView {
    /**
     * 展示数据
     * @param meals
     */
    void showData(List<SetMeal> meals);
}
  • adaLeft
public class LeftAdapter extends RecyclerView.Adapter<LeftAdapter.TextViewHolder> {

    List<SetMeal> list;
    ItemClickListener listener;

    public LeftAdapter() {
        this.list = new ArrayList<>();
    }

    public void setListener(ItemClickListener listener) {
        this.listener = listener;
    }

    public void addData(List<SetMeal> meals) {
        this.list.addAll(meals);
        notifyDataSetChanged();
    }

    class TextViewHolder extends RecyclerView.ViewHolder {
        TextView textView;

        public TextViewHolder(@NonNull View view) {
            super(view);
            textView = (TextView) view.findViewById(R.id.txt_meal);
        }
    }

    @NonNull
    @Override
    public TextViewHolder onCreateViewHolder(@NonNull ViewGroup viewGroup, int i) {
        View view = LayoutInflater.from(viewGroup.getContext()).inflate(R.layout.item_left, viewGroup, false);
        return new TextViewHolder(view);
    }

    @Override
    public void onBindViewHolder(@NonNull final TextViewHolder textViewHolder, int i) {
        final SetMeal meal = list.get(i);
        textViewHolder.textView.setText(meal.name);
        //根据选中状态更新条目背景
        if (meal.isClick) {
            textViewHolder.itemView.setBackgroundColor(Color.GRAY);
        } else {
            textViewHolder.itemView.setBackgroundColor(Color.WHITE);
        }

        textViewHolder.itemView.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {

                listener.onItemClick(meal);

                //遍历集合 ,修改中状态
                for (SetMeal temp : list) {
                    if (temp.id == meal.id) {//判断是否为当前条目
                        temp.isClick = true;
                    } else {
                        temp.isClick = false;
                    }
                }
                //帅新当前页面
                notifyDataSetChanged();

            }
        });
    }

    @Override
    public int getItemCount() {
        return list.size();
    }

    public interface ItemClickListener {
        void onItemClick(SetMeal meal);
    }
}

ada Right

public class RightAdapter extends RecyclerView.Adapter<RightAdapter.DescViewHolder>{

    List<Spus> list;

    public RightAdapter() {
        list=new ArrayList<>();
    }

    public void addData(List<Spus> spusList){
        this.list.clear();
        this.list.addAll(spusList);
        notifyDataSetChanged();
    }

    @NonNull
    @Override
    public DescViewHolder onCreateViewHolder(@NonNull ViewGroup viewGroup, int i) {
        View view= LayoutInflater.from(viewGroup.getContext()).inflate(R.layout.item_left,viewGroup,false);
        return new DescViewHolder(view);
    }

    @Override
    public void onBindViewHolder(@NonNull DescViewHolder descViewHolder, int i) {
        Spus temp=list.get(i);
        descViewHolder.textView.setText(temp.name);

    }

    @Override
    public int getItemCount() {
        return list.size();
    }

    static class DescViewHolder extends RecyclerView.ViewHolder{
        TextView textView;
        public DescViewHolder(@NonNull View itemView) {
            super(itemView);
            textView=(TextView)itemView.findViewById(R.id.txt_meal);
        }
    }

}

主页布局

 

<android.support.v7.widget.RecyclerView
    android:id="@+id/left_recycler"
    android:layout_width="0dp"
    android:layout_height="match_parent"
    android:layout_weight="1" />

<android.support.v7.widget.RecyclerView
    android:id="@+id/right_recycler"
    android:layout_width="0dp"
    android:background="@color/colorAccent"
    android:layout_height="match_parent"
    android:layout_weight="4" />

left布局

 

<TextView
    android:id="@+id/txt_meal"
    android:textSize="12sp"
    android:text="套餐"
    android:gravity="center"
    android:textColor="@color/colorPrimaryDark"
    android:layout_width="match_parent"
    android:layout_height="wrap_content" />
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值