适配器里面
package com.example.weizhiyuan20181217;
import android.content.Context;
import android.support.annotation.NonNull;
import android.support.v7.widget.RecyclerView;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ImageView;
import android.widget.LinearLayout;
import android.widget.TextView;
import com.bumptech.glide.Glide;
import java.util.ArrayList;
import java.util.List;
public class ContentAdapter extends RecyclerView.Adapter<RecyclerView.ViewHolder> {
private List<UserBean.DataBean> mlist;
private Context mContext;
public boolean mflag;
public ContentAdapter(Context context,Boolean flag){
this.mContext = context;
mflag = flag;
mlist = new ArrayList<>();
}
public void setMlist(List<UserBean.DataBean> list) {
mlist.clear();
if(list!=null)
{
mlist.addAll(list);
}
notifyDataSetChanged();
}
public void addMlist(List<UserBean.DataBean> list) {
if(list!=null)
{
mlist.addAll(list);
}
notifyDataSetChanged();
}
class ViewHolder extends RecyclerView.ViewHolder {
private ImageView icon;
private TextView title,price,data;
public ViewHolder(@NonNull View itemView) {
super(itemView);
icon = itemView.findViewById(R.id.icon);
title = itemView.findViewById(R.id.title);
price = itemView.findViewById(R.id.price);
data = itemView.findViewById(R.id.data);
}
}
public int getPid(int position){
return mlist.get(position).getPid();
}
@NonNull
@Override
public RecyclerView.ViewHolder onCreateViewHolder(@NonNull ViewGroup viewGroup, int i) {
RecyclerView.ViewHolder holder = null;
if(mflag =true)
{
View view = LayoutInflater.from(mContext).inflate(R.layout.item_one,viewGroup,false);
holder = new ViewHolder(view);
}else{
View view = LayoutInflater.from(mContext).inflate(R.layout.item_one,viewGroup,false);
holder = new ViewHolder(view);
}
return holder;
}
@Override
public void onBindViewHolder(@NonNull RecyclerView.ViewHolder viewHolder, final int i) {
ViewHolder holder= (ViewHolder) viewHolder;
holder.title.setText(mlist.get(i).getTitle());
holder.price.setText(mlist.get(i).getBargainPrice()+"");
holder.data.setText(mlist.get(i).getCreatetime());
String R = "";
int K = mlist.get(i).getImages().length();
for(int j=0;j<K;j++)
{
if(mlist.get(i).getImages().substring(j,j+1).equals("|"))
{
R = mlist.get(i).getImages().substring(j+1,K).trim();
}
}
Glide.with(mContext).load(R).into(holder.icon);
holder.itemView.setOnLongClickListener(new View.OnLongClickListener() {
@Override
public boolean onLongClick(View v) {
if(mOnClick!=null)
{
mOnClick.OnItemClick(i);
}
return true;
}
});
holder.itemView.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
if(mDelClick!=null)
{
// int pid = mlist.get(i).getPid();
mDelClick.OnItemLong(i);
}
}
});
}
public void remove(int position){
mlist.remove(position);
notifyDataSetChanged();
}
@Override
public int getItemCount() {
return mlist.size();
}
OnClick mOnClick;
DelClick mDelClick;
public void setOnClick(OnClick onClick){
this.mOnClick = onClick;
}
public interface OnClick{
void OnItemClick(int position);
}
public void setmDelClick(DelClick delClick){
this.mDelClick = delClick;
}
public interface DelClick{
void OnItemLong(int position);
}
}
商品页面点击可以切换线性布局和网格布局
package com.example.weizhiyuan20181217;
import android.content.Intent;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.support.v7.widget.DividerItemDecoration;
import android.support.v7.widget.GridLayoutManager;
import android.support.v7.widget.LinearLayoutManager;
import android.support.v7.widget.OrientationHelper;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.TextView;
import android.widget.Toast;
import com.jcodecraeer.xrecyclerview.XRecyclerView;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
public class MainActivity extends AppCompatActivity implements IView,View.OnClickListener {
private XRecyclerView contents;
private ContentAdapter adapter;
private int page;
private boolean flag = true;
private String url = "http://www.zhaoapi.cn/product/searchProducts";
private IPersenter mPersneter;
private List<UserBean.DataBean> databean = new ArrayList<>();
private Button button;
private LinearLayoutManager linearmanager;
private GridLayoutManager gridLayoutManager;
private EditText edit_input;
private TextView start;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
//加载资源id
initView();
//加载视图
initData();
//开始
initContents();
//默认Wie第一页
page = 1;
//分割线
initDonghua();
//点击搜索
initDianJi();
}
private void initDianJi() {
start.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
startRequest();
page=1;
}
});
//删除
adapter.setOnClick(new ContentAdapter.OnClick() {
@Override
public void OnItemClick(int position) {
adapter.remove(position);
}
});
//跳转
adapter.setmDelClick(new ContentAdapter.DelClick() {
@Override
public void OnItemLong(int position) {
int pid = adapter.getPid(position);
Intent intent=new Intent(MainActivity.this,ShappIngActivity.class);
intent.putExtra("pid",pid+"");
startActivity(intent);
}
});
}
private void initDonghua() {
DividerItemDecoration decoration = new DividerItemDecoration(this,OrientationHelper.VERTICAL);
contents.addItemDecoration(decoration);
}
private void initData() {
linearmanager = new LinearLayoutManager(this);
linearmanager.setOrientation(OrientationHelper.VERTICAL);
//默认显示为线性布局
gridLayoutManager = new GridLayoutManager(this,2);
gridLayoutManager.setOrientation(OrientationHelper.VERTICAL);
contents.setLayoutManager(linearmanager);
}
private void initView() {
contents = findViewById(R.id.contents);
edit_input = findViewById(R.id.edit_input);
adapter = new ContentAdapter(this,flag);
contents.setAdapter(adapter);
start = findViewById(R.id.jiantou);
mPersneter = new IPersenter(this);
button = findViewById(R.id.play);
button.setOnClickListener(this);
}
private void initContents() {
contents.setPullRefreshEnabled(true);
contents.setLoadingMoreEnabled(true);
contents.setLoadingListener(new XRecyclerView.LoadingListener() {
@Override
public void onRefresh() {
page =1;
startRequest();
}
@Override
public void onLoadMore() {
startRequest();
}
});
}
private void startRequest() {
Map<String,String> map = new HashMap<>();
map.put("keywords",edit_input.getText().toString());
map.put("page",page+"");
mPersneter.requestData(url,map,UserBean.class);
}
@Override
public void onClick(View v){
switch (v.getId())
{
case R.id.play:
flag=!flag;
adapter = new ContentAdapter(this,flag);
if(flag)
{
contents.setLayoutManager(gridLayoutManager);
}else{
contents.setLayoutManager(linearmanager);
}
adapter.setMlist(databean);
break;
}
}
@Override
public void showRequest(Object data) {
UserBean user = (UserBean) data;
if(page==1)
{
databean.clear();
adapter.setMlist(user.getData());
}else{
adapter.addMlist(user.getData());
}
page++;
databean.addAll(user.getData());
contents.loadMoreComplete();
contents.refreshComplete();
}
@Override
protected void onDestroy() {
super.onDestroy();
mPersneter.OnDistory();
}
}
package com.example.weizhiyuan20181217;
import android.content.Context;
import android.content.Intent;
import android.os.Bundle;
import android.support.annotation.Nullable;
import android.support.v7.app.AppCompatActivity;
import android.util.Log;
import android.view.View;
import android.widget.ImageView;
import android.widget.TextView;
import com.bumptech.glide.Glide;
import com.youth.banner.Banner;
import com.youth.banner.BannerConfig;
import com.youth.banner.loader.ImageLoaderInterface;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import cn.jpush.a.d;
public class ShappIngActivity extends AppCompatActivity implements IView{
private Banner mBanner;
private TextView title,price;
private String url = "http://www.zhaoapi.cn/product/getProductDetail";
private IPersenter mPersenter;
private String pid;
private ShappBean data1;
private List<String> strings;
@Override
protected void onCreate(@Nullable Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.login_activity);
mBanner = findViewById(R.id.mbanner);
title = findViewById(R.id.title);
price = findViewById(R.id.price);
Intent intent = getIntent();
pid = intent.getStringExtra("pid");
strings = new ArrayList<>();
mPersenter = new IPersenter(this);
Map<String,String> map = new HashMap<>();
map.put("pid",pid);
mPersenter.requestData(url,map,ShappBean.class);
mBanner.setBannerStyle(BannerConfig.CIRCLE_INDICATOR);
mBanner.setImageLoader(new ImageLoaderInterface<ImageView>() {
@Override
public void displayImage(Context context, Object path, ImageView imageView) {
String R = "";
int K = data1.getData().getImages().length();
for(int i=0;i<K;i++)
{
if(data1.getData().getImages().substring(i,i+1).equals("|"))
{
R = data1.getData().getImages().substring(i+1,K).trim();
}
}
Glide.with(context).load(R).into(imageView);
}
@Override
public ImageView createImageView(Context context) {
ImageView imageView = new ImageView(context);
imageView.setScaleType(ImageView.ScaleType.CENTER_CROP);
return imageView;
}
});
}
@Override
public void showRequest(Object data) {
if(data instanceof ShappBean){
data1 = (ShappBean) data;
String R = "";
int K = data1.getData().getImages().length();
for(int i=0;i<K;i++)
{
if(data1.getData().getImages().substring(i,i+1).equals("|"))
{
R = data1.getData().getImages().substring(i+1,K).trim();
}
}
strings.add(R);
mBanner.setImages(strings);
Log.i("TTT",strings.size()+"");
title.setText(data1.getData().getTitle());
price.setText(data1.getData().getBargainPrice()+"");
mBanner.start();
}
}
}