public class MainActivity extends AppCompatActivity implements UserView {
private RecyclerView mRecyclerViewLeft, mRecyclerViewRight;
private EditText mEdSeach;
private List<LeftBean.ResultBean> listLeft;
private UserPresenterIml userPresenterIml;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
//初始化
mRecyclerViewLeft = (RecyclerView) findViewById(R.id.recycler_left);
mRecyclerViewRight = (RecyclerView) findViewById(R.id.recycler_right);
mEdSeach = (EditText) findViewById(R.id.ed_seach);
LinearLayoutManager linearLayoutManager = new LinearLayoutManager(this);
linearLayoutManager.setOrientation(LinearLayoutManager.VERTICAL);
mRecyclerViewLeft.setLayoutManager(linearLayoutManager);
GridLayoutManager gridLayoutManager = new GridLayoutManager(this, 3);
mRecyclerViewRight.setLayoutManager(gridLayoutManager);
userPresenterIml = new UserPresenterIml(new UserModelIml(), this);
userPresenterIml.doShopLeftList(0);
//跳转流式
mEdSeach.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Intent intent = new Intent(MainActivity.this, LioushiActivity.class);
MainActivity.this.startActivity(intent);
}
});
}
@Override
public void success(int type, String data) {
if (type == 0) {
listLeft = new Gson().fromJson(data, LeftBean.class).getResult();
//创建适配器
final MyAdapter adapter = new MyAdapter(MainActivity.this, listLeft);
mRecyclerViewLeft.setAdapter(adapter);
//将第一条数据默认设置成红色
listLeft.get(0).setClick(true);
adapter.result(new MyAdapter.CallBack() {
@Override
public void setData(int position) {
//获取左边的id
String id = listLeft.get(position).getId();
userPresenterIml.doShopRightList(1, id);
for (int i = 0; i < listLeft.size(); i++) {
if (i == position) {
listLeft.get(i).setClick(true);
} else {
listLeft.get(i).setClick(false);
}
}
adapter.notifyDataSetChanged();
}
});
userPresenterIml.doShopRightList(1, listLeft.get(0).getId());
} else {
List<RightBean.ResultBean> listRight = new Gson().fromJson(data, RightBean.class).getResult();
//创建适配器
RightAdapter adapter = new RightAdapter(MainActivity.this, listRight);
mRecyclerViewRight.setAdapter(adapter);
}
}
@Override
public void fail(String error) {
}
}
左侧:MyAdapter
public class MyAdapter extends RecyclerView.Adapter<MyAdapter.ViewHolder> {
private Context context;
private List<LeftBean.ResultBean> list=new ArrayList<>();
private CallBack callBack;
public MyAdapter(Context context, List<LeftBean.ResultBean> list) {
this.context = context;
this.list = list;
}
@NonNull
@Override
public ViewHolder onCreateViewHolder(@NonNull ViewGroup viewGroup, int i) {
View view = View.inflate(context, R.layout.item_left, null);
ViewHolder viewHolder = new ViewHolder(view);
return viewHolder;
}
@Override
public void onBindViewHolder(@NonNull ViewHolder viewHolder, final int i) {
viewHolder.name.setText(list.get(i).getName());
if (list.get(i).isClick()){
viewHolder.name.setTextColor(Color.RED);
}else{
viewHolder.name.setTextColor(Color.parseColor("#999999"));
}
viewHolder.itemView.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
callBack.setData(i);
}
});
}
@Override
public int getItemCount() {
return list.size();
}
public class ViewHolder extends RecyclerView.ViewHolder {
private TextView name;
public ViewHolder(@NonNull View itemView) {
super(itemView);
name =(TextView)itemView.findViewById(R.id.tv_title);
}
}
public void result(CallBack callBack){
this.callBack=callBack;
}
public interface CallBack{
void setData(int position);
}
}
右侧:RightAdapter
public class RightAdapter extends RecyclerView.Adapter<RightAdapter.ViewHolder> {
private Context context;
private List<RightBean.ResultBean> list=new ArrayList<>();
public RightAdapter(Context context, List<RightBean.ResultBean> list) {
this.context = context;
this.list = list;
}
@NonNull
@Override
public ViewHolder onCreateViewHolder(@NonNull ViewGroup viewGroup, int i) {
View view = View.inflate(context, R.layout.item_right, null);
ViewHolder viewHolder = new ViewHolder(view);
return viewHolder;
}
@Override
public void onBindViewHolder(@NonNull ViewHolder viewHolder, int i) {
viewHolder.name.setText(list.get(i).getName());
viewHolder.name.setTextColor(Color.parseColor("#000000"));
}
@Override
public int getItemCount() {
return list.size();
}
public class ViewHolder extends RecyclerView.ViewHolder {
private TextView name;
public ViewHolder(@NonNull View itemView) {
super(itemView);
name =(TextView)itemView.findViewById(R.id.tv_title);
}
}
}