public class MainActivity extends AppCompatActivity implements MainView {
private XRecyclerView mXRrecyclerview;
private EditText mEdSeach;
private MainPresenterIml mainPresenterIml;
private int page = 1;
private CommodityAdapter mCommodityAdapter;
private RelativeLayout mLayoutShouNull;
private String keyword="手机";
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
//初始化组件
mLayoutShouNull = (RelativeLayout) findViewById(R.id.layout_shou_null);
mEdSeach = findViewById(R.id.ed_seach);
mXRrecyclerview = (XRecyclerView) findViewById(R.id.xrecyclerview);
mCommodityAdapter = new CommodityAdapter(this);
GridLayoutManager gridLayoutManager = new GridLayoutManager(this,2);
mXRrecyclerview.setLayoutManager(gridLayoutManager);
mXRrecyclerview.setAdapter(mCommodityAdapter);
mainPresenterIml = new MainPresenterIml(new MainModelIml(),this);
findViewById(R.id.btn_seach).setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
seach();
}
});
mXRrecyclerview.setLoadingMoreEnabled(true);
mXRrecyclerview.setLoadingListener(new XRecyclerView.LoadingListener() {
@Override
public void onRefresh() {
mainPresenterIml.doCommodity(keyword,page);
}
@Override
public void onLoadMore() {
mainPresenterIml.doCommodity(keyword,page);
}
});
//默认值手机
mainPresenterIml.doCommodity(keyword,page);
}
//要搜商品 手机
private void seach() {
String content = mEdSeach.getText().toString().trim();
if (TextUtils.isEmpty(content)){
Toast.makeText(this,"请输入要搜索的商品",Toast.LENGTH_SHORT).show();
return;
}
mainPresenterIml.doCommodity(content,page);
}
@Override
public void success(String json) {
//获取数据 封装
JsonBean bean = new Gson().fromJson(json,JsonBean.class);
mXRrecyclerview.refreshComplete();
mXRrecyclerview.loadMoreComplete();
if (bean.getResult().size() == 0){
mLayoutShouNull.setVisibility(View.VISIBLE);
}else {
mLayoutShouNull.setVisibility(View.GONE);
mCommodityAdapter.setList(bean.getResult());
}
}
@Override
public void fail() {
mXRrecyclerview.refreshComplete();
mXRrecyclerview.loadMoreComplete();
}
}
**
CommodityDetailsActivity
**
public class CommodityDetailsActivity extends AppCompatActivity implements MainView {
private ViewPager mImage;
private TextView mPrice,mNum,mTitle;
private String[] picTrueArr;
private ImagePageAdapter mImagePageAdapter;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_commodity_details2);
int id = getIntent().getIntExtra("id",103);
MainPresenterIml mainPresenterIml = new MainPresenterIml(new MainModelIml(),this);
mainPresenterIml.doShopDetail(id + "");
//初始化组件
mImage = findViewById(R.id.viewpager);
mPrice = findViewById(R.id.tv_price);
mNum = findViewById(R.id.tv_num);
mTitle = findViewById(R.id.tv_title);
//设置适配器
mImagePageAdapter = new ImagePageAdapter();
mImage.setAdapter(mImagePageAdapter);
}
@Override
public void success(String json) {
try {
ShopDetailBean bean = new Gson().fromJson(json,ShopDetailBean.class);
mTitle.setText(bean.getResult().getCommodityName());
mPrice.setText("¥" + bean.getResult().getPrice());
mNum.setText("已售" + bean.getResult().getSaleNum() + "件");
String picture = bean.getResult().getPicture();
picTrueArr = picture.split(",");
mImagePageAdapter.notifyDataSetChanged();
}catch (Exception e){
e.printStackTrace();
}
}
@Override
public void fail() {
}
private class ImagePageAdapter extends PagerAdapter {
@Override
public int getCount() {
if (picTrueArr == null){
return 0;
}
return picTrueArr.length;
}
@Override
public boolean isViewFromObject(@NonNull View view, @NonNull Object o) {
return view == o;
}
@NonNull
@Override
public Object instantiateItem(@NonNull ViewGroup container, int position) {
// return super.instantiateItem(container, position);
ImageView imageView = new ImageView(CommodityDetailsActivity.this);
Glide.with(CommodityDetailsActivity.this).load(picTrueArr[position]).into(imageView);
container.addView(imageView);
return imageView;
}
@Override
public void destroyItem(@NonNull ViewGroup container, int position, @NonNull Object object) {
//super.destroyItem(container, position, object);
container.removeView((View) object);
}
}
}
//CommodityDetailsActivity的适配器
public class CommodityAdapter extends RecyclerView.Adapter<CommodityAdapter.MyViewHolder> {
private Context context;
private List<JsonBean.ResultBean> list = new ArrayList<>();
public CommodityAdapter(Context context) {
this.context = context;
}
@NonNull
@Override
public CommodityAdapter.MyViewHolder onCreateViewHolder(@NonNull ViewGroup viewGroup, int i) {
View view = View.inflate(context,R.layout.recycler_item,null);
MyViewHolder myViewHolder = new MyViewHolder(view);
return myViewHolder;
}
@Override
public void onBindViewHolder(@NonNull CommodityAdapter.MyViewHolder myViewHolder, final int i) {
myViewHolder.mTitle.setText(list.get(i).getCommodityName());
myViewHolder.mPrice.setText("¥" + list.get(i).getPrice());
myViewHolder.mNum.setText("已售" + list.get(i).getSaleNum() + "件");
Glide.with(context).load(list.get(i).getMasterPic()).into(myViewHolder.mImage);
myViewHolder.itemView.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Intent intent = new Intent(context,CommodityDetailsActivity.class);
intent.putExtra("id",list.get(i).getCommodityId());
context.startActivity(intent);
}
});
}
@Override
public int getItemCount() {
return list.size();
}
//传递数据
public void setList(List<JsonBean.ResultBean> list) {
this.list = list;
notifyDataSetChanged();
}
public class MyViewHolder extends RecyclerView.ViewHolder {
TextView mTitle,mPrice,mNum;
ImageView mImage;
public MyViewHolder(@NonNull View itemView) {
super(itemView);
mImage = itemView.findViewById(R.id.image);
mTitle = itemView.findViewById(R.id.tv_title);
mPrice = itemView.findViewById(R.id.tv_price);
mNum = itemView.findViewById(R.id.tv_num);
}
}
}