-
主页 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" />