清单文件----------------
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.example.com.moni">
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.MOUNT_UNMOUNT_FILESYSTEMS" />
<application
android:name=".api.Myapplaction"
android:allowBackup="true"
android:icon="@mipmap/ic_launcher"
android:label="@string/app_name"
android:roundIcon="@mipmap/ic_launcher_round"
android:supportsRtl="true"
android:theme="@style/AppTheme">
<activity android:name=".MainActivity">
</activity>
<activity android:name=".ResgiterActivity" />
<!--启动项-->
<activity android:name=".HaredActivity" >
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<activity android:name=".XiangActivity" />
<activity android:name=".ShopListActivity"></activity>
</application>
</manifest>
依赖--------------------
compile 'com.jakewharton:butterknife:8.8.1'
annotationProcessor 'com.jakewharton:butterknife-compiler:8.8.1'
compile 'com.google.code.gson:gson:2.2.4'
compile 'com.squareup.okhttp3:okhttp:3.10.0'
compile 'com.github.bumptech.glide:glide:3.7.0'
compile 'com.android.support:recyclerview-v7:26.1.0'
compile 'com.jakewharton:butterknife:8.8.1'
annotationProcessor 'com.jakewharton:butterknife-compiler:8.8.1'
compile 'io.reactivex.rxjava2:rxjava:2.1.7'
compile 'io.reactivex.rxjava2:rxandroid:2.0.1'
compile 'com.squareup.retrofit2:converter-gson:2.4.0'
compile 'com.jakewharton.retrofit:retrofit2-rxjava2-adapter:1.0.0'
compile 'com.squareup.retrofit2:retrofit:2.1.0'
// 其他依赖 Fresco加载图片框架
compile 'com.facebook.fresco:fresco:0.12.0'
compile 'com.facebook.fresco:animated-gif:0.12.0'
compile 'org.greenrobot:eventbus:3.0.0'
//轮播图
compile 'com.youth.banner:banner:1.4.9'
/**
* Created by len on 2018/4/29.
*/
public interface ApiService {
//mobile password
//登录接口: http://120.27.23.105/user/login?mobile=&password=
// 注册接口: http://120.27.23.105/user/reg
//添加购物车 接口地址:http://120.27.23.105/product/addCart
//uid string 是 用户id pid string 是 商品id
//首页接口: http://result.eolinker.com/umIPmfS6c83237d9c70c7c9510c9b0f97171a308d13b611?uri=homepage
//查询购物车
// 接口地址:http://120.27.23.105/product/getCarts
//分类 https://www.zhaoapi.cn/product/getCatagory
//子分类 https://www.zhaoapi.cn/product/getProductCatagory
//更新购物车
// 接口地址:http://120.27.23.105/product/updateCarts?uid=71&sellerid=1&pid=1&s
//详情 https://www.zhaoapi.cn/product/getProductDetail?pid=58&source=android
//商品列表 https://www.zhaoapi.cn/product/getProducts
/**
* 注册
* @param mobile
* @param password
* @return
*/
@GET("user/reg")
Flowable<ResigterBean> getRegService(@Query("mobile") String mobile,@Query("password") String password);
/**
* 登录
* @param mobile
* @param password
* @return
*/
@GET("user/login")
Flowable<LoginBean> getLogService(@Query("mobile") String mobile,@Query("password") String password);
/**
* 首页
*
* https://www.zhaoapi.cn/product/getCatagory
* @return
*/
@GET("product/getCatagory")
Flowable<HaredTopBean> getHadTopService();
/**
* 轮播图 https://www.zhaoapi.cn/ad/getAd
*/
@GET("ad/getAd")
Flowable<LunBoBean> getTopService();
/**
* 右边recyiew
* https://www.zhaoapi.cn/product/getProductCatagory
*/
@GET("product/getProductCatagory")
Flowable<RightRecyBean> getRightRecyService(@Query("cid") String cid);
/**
*
* @param pid
* @return
*/
@GET("product/getProductDetail?source=android")
Flowable<XiangqingBean> getXiangService(@Query("pid") String pid);
/**
* 添加购物车
*/
@GET("product/addCart")
Flowable<AddBean> AddShpping( @Query("pid") String pid, @Query("uid") String cid, @Query("source") String source);
/**
* 分类商品列表
* @param pscid
* @return
*/
@GET("product/getProducts?source=android")
Flowable<FenListBean> fenList(@Query("pscid") String pscid);
/**
* 购物车
* https://www.zhaoapi.cn/product/getCarts?uid=71
*/
@GET("product/getCarts?source=android")
Flowable<ShopCartBean> getshopCart(@Query("uid") String uid);
}
<?xml version="1.0" encoding="utf-8"?>
<ScrollView android:layout_width="match_parent"
android:layout_height="match_parent"
xmlns:android="http://schemas.android.com/apk/res/android">
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="#F0F0F0"
android:orientation="vertical">
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="wrap_content">
<!--轮播图-->
<com.youth.banner.Banner
android:id="@+id/ban"
android:layout_width="match_parent"
android:layout_height="150dp"></com.youth.banner.Banner>
<include layout="@layout/title_layout"
android:layout_width="match_parent"
android:layout_height="40dp"
android:layout_marginTop="10dp"
/>
</RelativeLayout>
<!--首页recy_top布局-->
<android.support.v7.widget.RecyclerView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginLeft="10dp"
android:layout_marginRight="10dp"
android:id="@+id/recyview_top"></android.support.v7.widget.RecyclerView>
<!--京东快报-->
<LinearLayout
android:layout_width="match_parent"
android:layout_height="40dp"
android:orientation="horizontal"
android:background="@drawable/kuaibao"
android:layout_marginRight="10dp"
android:layout_marginBottom="10dp"
android:layout_marginLeft="10dp">
<TextView
android:layout_width="wrap_content"
android:layout_height="20dp"
android:text="京东快报"
android:layout_gravity="center_vertical"
android:gravity="center"
android:layout_marginLeft="10dp"/>
<com.example.com.moni.adapter.kuaibao.ADTextView
android:layout_width="wrap_content"
android:layout_height="20dp"
android:id="@+id/re"/>
<TextView
android:layout_width="wrap_content"
android:layout_height="20dp"
android:text="|更多……"/>
</LinearLayout>
<!--image-->
<ImageView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="@drawable/jd"/>
<!--京东秒杀-->
<LinearLayout
android:layout_width="match_parent"
android:layout_height="40dp"
android:gravity="center_vertical">
<TextView
android:id="@+id/tv_miaosha"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginLeft="10dp"
android:text="京东秒杀"
android:textColor="#f00" />
<TextView
android:id="@+id/tv_miaosha_time"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:padding="5dp"
android:text="10点场" />
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content">
<TextView
android:id="@+id/tv_miaosha_shi"
android:layout_width="15dp"
android:layout_height="15dp"
android:background="@drawable/shape_miaosha_time"
android:gravity="center"
android:text="1"
android:textColor="#fff"
android:textSize="10sp" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:padding="3dp"
android:text=":" />
<TextView
android:id="@+id/tv_miaosha_minter"
android:layout_width="15dp"
android:layout_height="15dp"
android:background="@drawable/shape_miaosha_time"
android:gravity="center"
android:text="1"
android:textColor="#fff"
android:textSize="10sp" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:padding="3dp"
android:text=":" />
<TextView
android:id="@+id/tv_miaosha_second"
android:layout_width="15dp"
android:layout_height="15dp"
android:background="@drawable/shape_miaosha_time"
android:gravity="center"
android:text="1"
android:textColor="#fff"
android:textSize="10sp" />
</LinearLayout>
</LinearLayout>
<!--秒杀-->
<android.support.v7.widget.RecyclerView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="#fff"
android:id="@+id/recyView_miao">
</android.support.v7.widget.RecyclerView>
<ImageView
android:layout_width="match_parent"
android:layout_height="20dp"
android:background="@drawable/tuijian"
/>
<!--推荐-->
<android.support.v7.widget.RecyclerView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="#fff"
android:layout_marginTop="10dp"
android:layout_gravity="center_horizontal"
android:id="@+id/recy_tuijian"></android.support.v7.widget.RecyclerView>
</LinearLayout>
</ScrollView>
package com.example.com.moni.fragment;
import android.content.Intent;
import android.graphics.Color;
import android.os.Bundle;
import android.os.Handler;
import android.os.Message;
import android.support.annotation.Nullable;
import android.support.v4.app.Fragment;
import android.support.v7.widget.DividerItemDecoration;
import android.support.v7.widget.RecyclerView;
import android.support.v7.widget.StaggeredGridLayoutManager;
import android.util.Log;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.TextView;
import com.example.com.moni.R;
import com.example.com.moni.XiangActivity;
import com.example.com.moni.adapter.RecyMiaoAdapter;
import com.example.com.moni.adapter.RecyTuiAdapter;
import com.example.com.moni.adapter.TopRecyAdapter;
import com.example.com.moni.adapter.kuaibao.ADEnity;
import com.example.com.moni.adapter.kuaibao.ADTextView;
import com.example.com.moni.api.MyApp;
import com.example.com.moni.bean.HaredTopBean;
import com.example.com.moni.bean.LunBoBean;
import com.example.com.moni.bean.XiangqingBean;
import com.example.com.moni.presenter.LunPresenter;
import com.example.com.moni.presenter.RecyTopPresenter;
import com.example.com.moni.presenter.XiangPresenter;
import com.example.com.moni.view.ITopView;
import com.example.com.moni.view.IXiangView;
import com.example.com.moni.view.IlunView;
import com.youth.banner.Banner;
import com.youth.banner.transformer.CubeOutTransformer;
import java.sql.Date;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Calendar;
import java.util.List;
/**
* Created by len on 2018/4/29.
*/
public class Fragment1 extends Fragment implements IlunView,ITopView,RecyTuiAdapter.GetPid{
private Banner ban;
private List<String> list;
private ArrayList<ADEnity> mList;
private View view;
private RecyclerView recy_top;
private RecyclerView recyView_miao;
private List<LunBoBean.MiaoshaBean.ListBeanX> miaoshaList;
private ADTextView mADTextView1;
private TextView miaosha_time;
private TextView miaosha_shi;
private TextView miaosha_minter;
private TextView miaosha_second;
private RecyclerView recy_tuijian;
private List<LunBoBean.TuijianBean.ListBean> tuijianList;
private LunPresenter lunPresenter;
private Handler handler = new Handler() {
@Override
public void handleMessage(Message msg) {
super.handleMessage(msg);
setTime();
sendEmptyMessageDelayed(0, 1000);
}
};
@Override
public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
view = inflater.inflate(R.layout.fragment01, container, false);
//找到控件
ban = view.findViewById(R.id.ban);
//首页2个recyview
recy_top = view.findViewById(R.id.recyview_top);
//秒杀
recyView_miao = view.findViewById(R.id.recyView_miao);
//推荐
recy_tuijian = view.findViewById(R.id.recy_tuijian);
/**
* 轮播图
*/ //创建p层
lunPresenter = new LunPresenter(this);
lunPresenter.getLunMdata();
/**
* recyview_top页面,调用p层方法
*/
RecyTopPresenter recyTopPresenter=new RecyTopPresenter(this);
recyTopPresenter.getTopMdata();
/**
* recy_miao页面 调用p层方法,数据和recyview_top同个接口
*/
/**
* 3. 横向滑动条
*/
init();
/**
* 4. 秒杀
*/
initView();
handler.sendEmptyMessage(0);
/**
* 详情
*/
// XiangPresenter xiangPresenter=new XiangPresenter(this);
// xiangPresenter.getXMdata(pid);
return view;
}
//秒杀
private void initView() {
miaosha_time = view.findViewById(R.id.tv_miaosha_time);
miaosha_shi = view.findViewById(R.id.tv_miaosha_shi);
miaosha_minter = view.findViewById(R.id.tv_miaosha_minter);
miaosha_second = view.findViewById(R.id.tv_miaosha_second);
}
//横向滑动
private void init() {
mADTextView1 = view.findViewById(R.id.re);
mList = new ArrayList<>();
mList.add(new ADEnity("推荐", "国货PK美国货,结果让人震惊……", "连接1"));
mList.add(new ADEnity("劲爆", "这次XiPhone,可能让你迷路……", "连接2"));
mList.add(new ADEnity("推荐", "为什么吉普,奥巴马都爱钓鱼……", "连接3"));
mList.add(new ADEnity("HOT", "虽然我字难看,但我钢笔好看啊……", "连接4"));
mADTextView1.setSpeed(3);
mADTextView1.setInterval(1500);
mADTextView1.setFrontColor(Color.RED);
mADTextView1.setBackColor(Color.BLACK);
mADTextView1.setmTexts(mList);
}
//秒杀倒计时
private void setTime() {
SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
Date curDate = new Date(System.currentTimeMillis());
String format = df.format(curDate);
StringBuffer buffer = new StringBuffer();
String substring = format.substring(0, 11);
buffer.append(substring);
Log.d("ccc", substring);
Calendar calendar = Calendar.getInstance();
int hour = calendar.get(Calendar.HOUR_OF_DAY);
if (hour % 2 == 0) {
miaosha_time.setText(hour + "点场");
buffer.append((hour + 2));
buffer.append(":00:00");
} else {
miaosha_time.setText((hour - 1) + "点场");
buffer.append((hour + 1));
buffer.append(":00:00");
}
String totime = buffer.toString();
try {
java.util.Date date = df.parse(totime);
java.util.Date date1 = df.parse(format);
long defferenttime = date.getTime() - date1.getTime();
long days = defferenttime / (1000 * 60 * 60 * 24);
long hours = (defferenttime - days * (1000 * 60 * 60 * 24)) / (1000 * 60 * 60);
long minute = (defferenttime - days * (1000 * 60 * 60 * 24) - hours * (1000 * 60 * 60)) / (1000 * 60);
long seconds = defferenttime % 60000;
long second = Math.round((float) seconds / 1000);
miaosha_shi.setText("0" + hours + "");
if (minute >= 10) {
miaosha_minter.setText(minute + "");
} else {
miaosha_minter.setText("0" + minute + "");
}
if (second >= 10) {
miaosha_second.setText(second + "");
} else {
miaosha_second.setText("0" + second + "");
}
} catch (ParseException e) {
e.printStackTrace();
} catch (Exception e) {
e.printStackTrace();
}
}
//v层请求数据
@Override
public void success(LunBoBean lunBoBean) {
List<LunBoBean.DataBean> data = lunBoBean.getData();
list = new ArrayList<>();
for (int i = 0; i <data.size() ; i++) {
String icon = data.get(i).getIcon();
//把图片添加到list
list.add(icon);
}
/**
* 轮播
*/
ban.setImageLoader(new MyApp());//引用ImgApp,加载里面的东西
ban.setImages(list)
.setBannerAnimation(CubeOutTransformer.class)
.isAutoPlay(true)
// .setBannerStyle(BannerConfig.CIRCLE_INDICATOR_TITLE)
// .setBannerTitles(title)
.setDelayTime(2000)
.start();
/**
* 秒杀
*/
LunBoBean.MiaoshaBean miaosha = lunBoBean.getMiaosha();
miaoshaList = miaosha.getList();
//设置适配器
StaggeredGridLayoutManager manager=new StaggeredGridLayoutManager(2,StaggeredGridLayoutManager.VERTICAL);
recyView_miao.addItemDecoration(new DividerItemDecoration(getActivity(), DividerItemDecoration.HORIZONTAL));
recyView_miao.addItemDecoration(new DividerItemDecoration(getActivity(), DividerItemDecoration.VERTICAL));
recyView_miao.setLayoutManager(manager);
//设置适配器
RecyMiaoAdapter adapter=new RecyMiaoAdapter(getActivity(),miaoshaList);
recyView_miao.setAdapter(adapter);
/**
* 推荐
*/
LunBoBean.TuijianBean tuijian = lunBoBean.getTuijian();
tuijianList = tuijian.getList();
StaggeredGridLayoutManager manager1=new StaggeredGridLayoutManager(2,StaggeredGridLayoutManager.VERTICAL);
recy_tuijian.setLayoutManager(manager1);
recy_tuijian.addItemDecoration(new DividerItemDecoration(getActivity(), DividerItemDecoration.HORIZONTAL));
recy_tuijian.addItemDecoration(new DividerItemDecoration(getActivity(), DividerItemDecoration.VERTICAL));
//设置控制器
RecyTuiAdapter adapter2=new RecyTuiAdapter(getActivity(), tuijianList);
recy_tuijian.setAdapter(adapter2);
adapter2.getClick(Fragment1.this);
}
/**
* 首页recyview_top
* @param
*/
@Override
public void Tsuccess(HaredTopBean haredTopBean) {
List<HaredTopBean.DataBean> data = haredTopBean.getData();
Log.d("fragment", "Tsuccess: "+data.size());
//瀑布流
StaggeredGridLayoutManager manager=new StaggeredGridLayoutManager(2,StaggeredGridLayoutManager.HORIZONTAL);
recy_top.setLayoutManager(manager);
//为recy_top设置适配器
TopRecyAdapter adapter=new TopRecyAdapter(getActivity(),data);
recy_top.setAdapter(adapter);
}
//点击事件 传pid
@Override
public void setClick(int pid) {
Intent intent=new Intent(getActivity(), XiangActivity.class);
intent.putExtra("pid",tuijianList.get(pid).getPid());
startActivity(intent);
}
@Override
public void onDestroy() {
super.onDestroy();
//置空
lunPresenter.dettach();
}
}
适配器(首页TopRecyView代码)
package com.example.com.moni.adapter;
import android.content.Context;
import android.support.v4.app.FragmentActivity;
import android.support.v7.widget.RecyclerView;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.TextView;
import com.example.com.moni.R;
import com.example.com.moni.bean.HaredTopBean;
import com.example.com.moni.bean.LunBoBean;
import com.facebook.drawee.view.SimpleDraweeView;
import java.util.List;
/**
* Created by len on 2018/5/1.
*/
public class TopRecyAdapter extends RecyclerView.Adapter {
Context context;
List<HaredTopBean.DataBean> data;
private TopViewHolder topViewHolder;
public TopRecyAdapter(Context context, List<HaredTopBean.DataBean> data) {
this.context=context;
this.data=data;
}
@Override
public RecyclerView.ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
//引入布局
View view=LayoutInflater.from(context).inflate(R.layout.top_recy_item,parent,false);
//把布局和自定义适配器绑定
topViewHolder = new TopViewHolder(view);
return topViewHolder;
}
@Override
public void onBindViewHolder(RecyclerView.ViewHolder holder, int position) {
topViewHolder= (TopViewHolder) holder;
//赋值
topViewHolder.top_img.setImageURI(data.get(position).getIcon());
topViewHolder.top_text.setText(data.get(position).getName());
}
@Override
public int getItemCount() {
return data.size();
}
class TopViewHolder extends RecyclerView.ViewHolder {
private final SimpleDraweeView top_img;
private final TextView top_text;
public TopViewHolder(View itemView) {
super(itemView);
top_img = itemView.findViewById(R.id.top_recy_img);
top_text = itemView.findViewById(R.id.top_recy_text);
}
}
}
秒杀适配器代码(多条目)
package com.example.com.moni.adapter;
import android.content.Context;
import android.support.v4.app.FragmentActivity;
import android.support.v7.widget.RecyclerView;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.TextView;
import com.example.com.moni.R;
import com.example.com.moni.bean.LunBoBean;
import com.facebook.drawee.view.SimpleDraweeView;
import java.util.List;
/**
* Created by len on 2018/5/1.
*/
public class RecyMiaoAdapter extends RecyclerView.Adapter {
Context context;
private int index;
public static final int TYPE_ONE = 0;
public static final int TYPE_TWO = 1;
List<LunBoBean.MiaoshaBean.ListBeanX> miaoshaList;
private MiaoViewHolder miaoViewHolder;
private int type;
public RecyMiaoAdapter(Context context, List<LunBoBean.MiaoshaBean.ListBeanX> miaoshaList) {
this.context=context;
this.miaoshaList=miaoshaList;
}
@Override
public RecyclerView.ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
//引入布局
View view;
if(viewType==TYPE_ONE){
view= LayoutInflater.from(context).inflate(R.layout.recyview_miao_item,parent, false);
return new MiaoViewHolder(view);
}else{
view=LayoutInflater.from(context).inflate(R.layout.recyview_miao_item2,parent,false);
return new MiaoViewHolder2(view);
}
}
@Override
public int getItemViewType(int position) {
// type = getItemViewType(position);
//type = miaoshaList.get(position).getItemtype();
if(position ==0){
return TYPE_ONE;
}else{
return TYPE_TWO;
}
}
@Override
public void onBindViewHolder(RecyclerView.ViewHolder holder, int position) {
int itemViewType = getItemViewType(position);
if(itemViewType==0){
MiaoViewHolder miaoViewHolder= (MiaoViewHolder) holder;
miaoViewHolder.re_title_price.setText(miaoshaList.get(position).getPrice()+"");
miaoViewHolder.re_title_price21.setText("¥"+miaoshaList.get(position+1).getPrice()+"");
miaoViewHolder.re_title_price31.setText("¥"+miaoshaList.get(position+2).getPrice()+"");
String images = miaoshaList.get(position).getImages();
String[] split = images.split("\\|");
miaoViewHolder.re_img1.setImageURI(split[0]);
miaoViewHolder.re_img2.setImageURI(split[1]);
miaoViewHolder.re_img3.setImageURI(split[2]);
}else{
MiaoViewHolder2 miaoViewHolder2= (MiaoViewHolder2) holder;
String images2 = miaoshaList.get(position).getImages();
String[] split2 = images2.split("\\|");
miaoViewHolder2.two_text1.setText("¥"+miaoshaList.get(position).getPrice()+"");
miaoViewHolder2.two_text2.setText("¥"+miaoshaList.get(position).getPrice()+"");
miaoViewHolder2.two_img1.setImageURI(split2[0]);
miaoViewHolder2.two_img2.setImageURI(split2[1]);
}
}
@Override
public int getItemCount() {
return 4;
}
class MiaoViewHolder extends RecyclerView.ViewHolder {
private final SimpleDraweeView re_img1;
private final TextView re_title_price;
private final SimpleDraweeView re_img2;
private final TextView re_title_price21;
private final SimpleDraweeView re_img3;
private final TextView re_title_price31;
public MiaoViewHolder(View itemView) {
super(itemView);
re_img1 = itemView.findViewById(R.id.miao_title_img1);
re_title_price = itemView.findViewById(R.id.miao_title11);
re_img2= itemView.findViewById(R.id.miao_title_img2);
re_title_price21 = itemView.findViewById(R.id.miao_title21);
re_img3 = itemView.findViewById(R.id.miao_title_img3);
re_title_price31 = itemView.findViewById(R.id.miao_title31);
}
}
class MiaoViewHolder2 extends RecyclerView.ViewHolder {
private final TextView two_text1;
private final SimpleDraweeView two_img1;
private final TextView two_text2;
private final SimpleDraweeView two_img2;
public MiaoViewHolder2(View itemView) {
super(itemView);
two_text1 = itemView.findViewById(R.id.two_miao_title1);
two_img1 = itemView.findViewById(R.id.two_miao_img1);
two_text2 = itemView.findViewById(R.id.two_miao_title2);
two_img2 = itemView.findViewById(R.id.two_miao_img2);
}
}
}
推荐适配器
package com.example.com.moni.adapter;
import android.content.Context;
import android.support.v4.app.FragmentActivity;
import android.support.v7.widget.RecyclerView;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.TextView;
import com.example.com.moni.R;
import com.example.com.moni.bean.LunBoBean;
import com.example.com.moni.utils.HttpUtils;
import com.facebook.drawee.view.SimpleDraweeView;
import java.util.List;
/**
* Created by len on 2018/5/1.
*/
public class RecyTuiAdapter extends RecyclerView.Adapter {
Context context;
List<LunBoBean.TuijianBean.ListBean> tuijianList;
private TuiViewholder tuiViewholder;
private GetPid getPid;
public RecyTuiAdapter(Context context, List<LunBoBean.TuijianBean.ListBean> tuijianList) {
this.context=context;
this.tuijianList=tuijianList;
}
//定义得到接口对象方法
public void getClick(GetPid getPid){
this.getPid=getPid;
}
@Override
public RecyclerView.ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
View view=LayoutInflater.from(context).inflate(R.layout.tuijian_recy_item,parent,false);
tuiViewholder = new TuiViewholder(view);
return tuiViewholder;
}
@Override
public void onBindViewHolder(RecyclerView.ViewHolder holder, final int position) {
tuiViewholder= (TuiViewholder) holder;
String images = tuijianList.get(position).getImages();
String[] split = images.split("\\|");
//赋值
tuiViewholder.tui_img.setImageURI(split[0]);
tuiViewholder.tui_text.setText(tuijianList.get(position).getTitle());
//设置点击事件 传入pid
tuiViewholder.itemView.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
getPid.setClick(position);
}
});
}
@Override
public int getItemCount() {
return tuijianList.size();
}
class TuiViewholder extends RecyclerView.ViewHolder {
private final TextView tui_text;
private final SimpleDraweeView tui_img;
public TuiViewholder(View itemView) {
super(itemView);
tui_text = itemView.findViewById(R.id.tui_recy_text);
tui_img = itemView.findViewById(R.id.tui_recy_img);
}
}
public interface GetPid{
//点击事件
void setClick(int pid);
}
}
商品列表适配器
package com.example.com.moni.adapter;
import android.content.Context;
import android.support.v7.widget.RecyclerView;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.TextView;
import com.example.com.moni.R;
import com.example.com.moni.ShopListActivity;
import com.example.com.moni.bean.FenListBean;
import com.facebook.drawee.view.SimpleDraweeView;
import org.greenrobot.eventbus.EventBus;
import java.util.List;
/**
* Created by len on 2018/5/2.
*/
public class ShopListAdapter extends RecyclerView.Adapter {
Context context;
List<FenListBean.DataBean> fenListBeanData;
private ShopListViewHolder shopListViewHolder;
private SetOnClick setOnClick;
public ShopListAdapter(Context context, List<FenListBean.DataBean> fenListBeanData) {
this.context=context;
this.fenListBeanData=fenListBeanData;
}
//提供得到接口对象方法
public void getClick(SetOnClick setOnClick){
this.setOnClick=setOnClick;
}
@Override
public RecyclerView.ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
View view= LayoutInflater.from(context).inflate(R.layout.recy_shop_item,null);
shopListViewHolder = new ShopListViewHolder(view);
return shopListViewHolder;
}
@Override
public void onBindViewHolder(RecyclerView.ViewHolder holder, final int position) {
shopListViewHolder= (ShopListViewHolder) holder;
String images = fenListBeanData.get(position).getImages();
String[] split = images.split("\\|");
shopListViewHolder.shop_img.setImageURI(split[0]);
shopListViewHolder.shop_title.setText(fenListBeanData.get(position).getTitle());
shopListViewHolder.shop_price.setText("¥"+fenListBeanData.get(position).getPrice()+"");
//设置点击事件
shopListViewHolder.itemView.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
setOnClick.setItemClick(position);
}
});
}
@Override
public int getItemCount() {
return fenListBeanData.size();
}
class ShopListViewHolder extends RecyclerView.ViewHolder {
private final SimpleDraweeView shop_img;
private final TextView shop_title;
private final TextView shop_price;
public ShopListViewHolder(View itemView) {
super(itemView);
shop_img = itemView.findViewById(R.id.re_shop_img);
shop_title = itemView.findViewById(R.id.re_shop_title);
shop_price = itemView.findViewById(R.id.re_shop_price);
}
}
//定义接口设置点击事件
public interface SetOnClick{
//定义点击事件
void setItemClick(int position);
}
}
商品列表Activity
package com.example.com.moni;
import android.content.Intent;
import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;
import android.support.v7.widget.RecyclerView;
import android.support.v7.widget.StaggeredGridLayoutManager;
import android.util.Log;
import com.example.com.moni.adapter.ShopListAdapter;
import com.example.com.moni.bean.FenListBean;
import com.example.com.moni.presenter.ShopListPresenter;
import com.example.com.moni.view.IShopListView;
import org.greenrobot.eventbus.EventBus;
import org.greenrobot.eventbus.Subscribe;
import org.greenrobot.eventbus.ThreadMode;
import java.util.List;
import butterknife.BindView;
import butterknife.ButterKnife;
public class ShopListActivity extends AppCompatActivity implements IShopListView,ShopListAdapter.SetOnClick {
@BindView(R.id.recy_shop_list)
RecyclerView recyShopListView;
private ShopListPresenter shopLifstPresenter;
private List<FenListBean.DataBean> fenListBeanData;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_shop_list);
ButterKnife.bind(this);
//注册
EventBus.getDefault().register(this);
}
//定义订阅方法
@Subscribe(threadMode = ThreadMode.MAIN,sticky = true)
public void getPscid(String pscid) {
//创建p层
shopLifstPresenter = new ShopListPresenter(this);
Log.e("--",pscid+"1111111111");
shopLifstPresenter.getSLdata(pscid+"");
}
@Override
public void getShopListData(FenListBean fenListBean) {
fenListBeanData = fenListBean.getData();
Log.e("--", "getShopListData: "+ fenListBeanData.size());
//设置控制器
StaggeredGridLayoutManager manager=new StaggeredGridLayoutManager(1,StaggeredGridLayoutManager.VERTICAL);
recyShopListView.setLayoutManager(manager);
//设置适配器
ShopListAdapter adapter=new ShopListAdapter(ShopListActivity.this, fenListBeanData);
recyShopListView.setAdapter(adapter);
adapter.getClick(this);
}
@Override
protected void onDestroy() {
super.onDestroy();
EventBus.getDefault().unregister(this);
}
//设置点击事件 发送pid到xaingqinng
@Override
public void setItemClick(int position) {
int pid = fenListBeanData.get(position).getPid();
// EventBus.getDefault().postSticky(pid+"");
Intent intent=new Intent(ShopListActivity.this,XiangActivity.class);
intent.putExtra("pid",pid);
startActivity(intent);
}
}
详情页面activity
package com.example.com.moni;
import android.content.Intent;
import android.content.SharedPreferences;
import android.net.Uri;
import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;
import android.widget.TextView;
import android.widget.Toast;
import com.example.com.moni.bean.AddBean;
import com.example.com.moni.bean.RightRecyBean;
import com.example.com.moni.bean.XiangqingBean;
import com.example.com.moni.presenter.AddPresenter;
import com.example.com.moni.presenter.XiangPresenter;
import com.example.com.moni.view.IAddView;
import com.example.com.moni.view.IRecyRightView;
import com.example.com.moni.view.IXiangView;
import com.facebook.drawee.view.SimpleDraweeView;
import java.util.List;
import butterknife.BindView;
import butterknife.ButterKnife;
import butterknife.OnClick;
public class XiangActivity extends AppCompatActivity implements IXiangView ,IAddView{
@BindView(R.id.xiang_img)
SimpleDraweeView xiangImg;
@BindView(R.id.xinga_title)
TextView xingaTitle;
@BindView(R.id.xiang_price)
TextView xiangPrice;
private int uid;
private List<RightRecyBean.DataBean.ListBean> list;
private int pid;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_xiang);
ButterKnife.bind(this);
//找到控件
Intent intent = getIntent();
//得到intent得到pid 得不到为0
int pid = intent.getIntExtra("pid", 0);
XiangPresenter xiangPresenter = new XiangPresenter(this);
xiangPresenter.getXMdata(pid + "");
//取出UID
SharedPreferences shop = getSharedPreferences("shop", MODE_PRIVATE);
uid = shop.getInt("uid", 0);
//如果等于o未登录 跳转登录页面
if(uid==0){
Intent intent1=new Intent(XiangActivity.this,MainActivity.class);
startActivity(intent1);
}
}
//请求的数据
@Override
public void getXdata(XiangqingBean xiangqingBean) {
XiangqingBean.DataBean xdata = xiangqingBean.getData();
if(xdata!=null) {
pid = xdata.getPid();
String title = xdata.getTitle();
String subhead = xdata.getSubhead();
double price = xdata.getPrice();
String images = xdata.getImages();
String[] split = images.split("\\|");
xiangImg.setImageURI(Uri.parse(split[0]));
xingaTitle.setText(title);
xiangPrice.setText("¥"+price + "");
}else{
Toast.makeText(XiangActivity.this,"此商品已被移除",Toast.LENGTH_SHORT).show();
}
}
@OnClick(R.id.xiang_shop)
public void onViewClicked() {
//创建p层
AddPresenter addPresenter=new AddPresenter(this);
addPresenter.getAddMdata(pid+"",uid+"","android");
}
@Override
public void getMdata(AddBean addBean) {
//成功吐司
String msg = addBean.getMsg();
Toast.makeText(XiangActivity.this,msg,Toast.LENGTH_SHORT).show();
}
}