diff --git a/app/build.gradle b/app/build.gradle
index 5714ac9..48d8a4d 100644
--- a/app/build.gradle
+++ b/app/build.gradle
@@ -66,6 +66,14 @@ dependencies {
//eventbus传递信息
implementation("org.greenrobot:eventbus:3.3.1")
+// glide图片加载
+ implementation 'com.github.bumptech.glide:glide:4.11.0'
+ annotationProcessor 'com.github.bumptech.glide:compiler:4.11.0'
+
+ implementation "androidx.cardview:cardview:1.0.0"
+
+
+
diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index d846309..4b8b102 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -19,6 +19,8 @@
+
+
{
+ private ArrayList goodArrayList;
+ private Context context;
+
+ public GoodsAdapter(ArrayList goodArrayList,Context context) {
+ this.goodArrayList = goodArrayList;
+ this.context = context;
+ Log.e("goodsAdapter","GoodsAdapter");
+ }
+
+ @NonNull
+ @Override
+ public GoodsAdapter.ViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
+ View view = LayoutInflater.from(parent.getContext())
+ .inflate(R.layout.goods_show_item,parent,false);
+ return new ViewHolder(view);
+ }
+
+ @Override
+ public void onBindViewHolder(@NonNull GoodsAdapter.ViewHolder holder, int position) {
+ String strTvTitle;
+ String strTvCount;
+ String imageUrl;
+
+ if (goodArrayList.get(position) != null){
+ strTvTitle = goodArrayList.get(position).getContent();
+ strTvCount = goodArrayList.get(position).getPrice().toString();
+ imageUrl = (String) goodArrayList.get(position).getImageUrlList().get(0);
+ Log.e("imageUrl", (String) goodArrayList.get(position).getImageUrlList().get(0));
+ holder.getTvTitle().setText(strTvTitle);
+ holder.getTvCount().setText(strTvCount);
+
+ Glide.with(context)
+ .load(imageUrl)
+ .into(holder.getIvGoods());
+ }
+ }
+
+ @Override
+ public int getItemCount() {
+ if (goodArrayList != null)
+ return goodArrayList.size();
+
+ return 0;
+ }
+
+ public class ViewHolder extends RecyclerView.ViewHolder {
+ private ImageView ivGoods;
+ private TextView tvTitle;
+ private TextView tvCount;
+ public ViewHolder(@NonNull View itemView) {
+ super(itemView);
+ ivGoods = itemView.findViewById(R.id.iv_goods);
+ tvTitle = itemView.findViewById(R.id.tv_title);
+ tvCount = itemView.findViewById(R.id.tv_count);
+ }
+
+ public ImageView getIvGoods() {
+ return ivGoods;
+ }
+
+ public TextView getTvTitle() {
+ return tvTitle;
+ }
+
+
+ public TextView getTvCount() {
+ return tvCount;
+ }
+ }
+}
diff --git a/app/src/main/java/com/android/activity/fragment/GoodsTypeFragment.java b/app/src/main/java/com/android/activity/fragment/GoodsTypeFragment.java
index d99f278..b116c25 100644
--- a/app/src/main/java/com/android/activity/fragment/GoodsTypeFragment.java
+++ b/app/src/main/java/com/android/activity/fragment/GoodsTypeFragment.java
@@ -3,6 +3,9 @@ package com.android.activity.fragment;
import android.os.Bundle;
import androidx.fragment.app.Fragment;
+import androidx.recyclerview.widget.GridLayoutManager;
+import androidx.recyclerview.widget.LinearLayoutManager;
+import androidx.recyclerview.widget.RecyclerView;
import android.os.Parcelable;
import android.util.Log;
@@ -12,6 +15,7 @@ import android.view.ViewGroup;
import android.widget.TextView;
import com.android.R;
+import com.android.activity.adapter.GoodsAdapter;
import com.android.bean.Good;
import com.android.utils.eventBus.EventMsg;
@@ -34,11 +38,15 @@ public class GoodsTypeFragment extends Fragment {
// the fragment initialization parameters, e.g. ARG_ITEM_NUMBER
private static final String ARG_TEXT = "param1";
private static final String ARG_GOODS = "goodsTypeList";
+ private ArrayList goodArrayList;
private EventMsg eventMsg;
+ private ArrayList typeGoodList;
+ private RecyclerView recyclerView;
+ private GoodsAdapter goodsAdapter;
View rootView;
- private String mParam1;
+ private Integer mParam1;
public GoodsTypeFragment() {
// Required empty public constructor
@@ -46,11 +54,11 @@ public class GoodsTypeFragment extends Fragment {
// TODO: Rename and change types and number of parameters
- public static GoodsTypeFragment newInstance(String param1,List goodsList) {
+ public static GoodsTypeFragment newInstance(Integer param1,List goodsList) {
GoodsTypeFragment fragment = new GoodsTypeFragment();
Bundle args = new Bundle();
- args.putString(ARG_TEXT, param1);
- args.putParcelableArrayList(ARG_GOODS, (ArrayList extends Parcelable>) goodsList);
+ args.putInt(ARG_TEXT, param1);
+ args.putSerializable(ARG_GOODS, (Serializable) goodsList);
fragment.setArguments(args);
return fragment;
}
@@ -58,9 +66,17 @@ public class GoodsTypeFragment extends Fragment {
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
- //注册事件
if (getArguments() != null) {
- mParam1 = getArguments().getString(ARG_TEXT);
+ mParam1 = getArguments().getInt(ARG_TEXT);
+ goodArrayList = (ArrayList) getArguments().getSerializable(ARG_GOODS);
+ }
+ if(goodArrayList != null) {
+ typeGoodList = new ArrayList<>();
+ for (int j = 0; j < goodArrayList.size(); j++) {
+ if(goodArrayList.get(j).getTypeId() == mParam1){
+ typeGoodList.add(goodArrayList.get(j));
+ }
+ }
}
}
@@ -68,18 +84,36 @@ public class GoodsTypeFragment extends Fragment {
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
-
-
if(rootView == null)
rootView = inflater.inflate(R.layout.fragment_goods_type, container, false);
+ //recycle必须在
+
+ initView();
return rootView;
}
+ private void initView() {
+
+ recyclerView = rootView.findViewById(R.id.rl_goods_show);
+ if (goodArrayList != null){
+ goodsAdapter = new GoodsAdapter(typeGoodList,getContext());
+ recyclerView.setLayoutManager(new LinearLayoutManager(getContext()));
+ recyclerView.setAdapter(goodsAdapter);
+ }
+
+// TextView view = rootView.findViewById(R.id.tv_goods);
+// view.setText(goodArrayList.get(1).getUsername());
+
+ }
+
@Override
public void onStart() {
+
EventBus.getDefault().register(this);
super.onStart();
+
+
}
@Override
@@ -99,9 +133,8 @@ public class GoodsTypeFragment extends Fragment {
@Subscribe(sticky = true,threadMode = ThreadMode.MAIN)
public void onReceiveMsg(EventMsg eventMsg){
this.eventMsg = eventMsg;
- TextView view = rootView.findViewById(R.id.tv_goods);
- view.setText(eventMsg.getMsg());
- Log.e("111111111",eventMsg.getMsg());
+// TextView view = rootView.findViewById(R.id.tv_goods);
+// view.setText(eventMsg.getMsg());
}
}
\ No newline at end of file
diff --git a/app/src/main/java/com/android/activity/fragment/HomePageFragment.java b/app/src/main/java/com/android/activity/fragment/HomePageFragment.java
index b07af75..b9f8afb 100644
--- a/app/src/main/java/com/android/activity/fragment/HomePageFragment.java
+++ b/app/src/main/java/com/android/activity/fragment/HomePageFragment.java
@@ -3,9 +3,12 @@ package com.android.activity.fragment;
import android.content.Context;
import android.os.Bundle;
+import androidx.annotation.NonNull;
+import androidx.annotation.Nullable;
import androidx.fragment.app.Fragment;
import androidx.viewpager2.widget.ViewPager2;
+import android.os.Handler;
import android.util.Log;
import android.view.LayoutInflater;
import android.view.View;
@@ -40,7 +43,6 @@ public class HomePageFragment extends Fragment implements View.OnClickListener,
private GoodsModelimpl goodsModelimpl;
private List goodsTypeList;
private List goodList;
- private List typeGoodList;
private View rootView;
private GoodsTypeFSAdapter goodsTypeFSAdapter;
@@ -51,6 +53,7 @@ public class HomePageFragment extends Fragment implements View.OnClickListener,
public HomePageFragment() {
// Required empty public constructor
+
}
@@ -68,52 +71,47 @@ public class HomePageFragment extends Fragment implements View.OnClickListener,
rootView = inflater.inflate(R.layout.fragment_home_page,
container, false);
- Log.e("1","onCreateView");
initGoodsTypeData();
return rootView;
}
private void initGoodsTypeData() {
goodsModelimpl = new GoodsModelimpl();
- goodsModelimpl.getAllGoodsType(this);
goodsModelimpl.getAllGood(this);
+ goodsModelimpl.getAllGoodsType(this);
+ new Handler().postDelayed(new Runnable() {
+ @Override
+ public void run() {
+ initRecyclerview();
+ }
+ },2000);
- }
+ }
//获取商品类型成功回调
@Override
public void onGetAllGoodsType(ResponseData> responseData) {
this.goodsTypeList = responseData.getData();
- this.goodsTypeList.add(new GoodsType(0,"全部"));
-
- initRecyclerview();
-
-
}
//获取商品成功回调
@Override
public void onGetAllGoodSuccess(ResponseData responseData) {
this.goodList = responseData.getData().getRecords();
-
+ Log.e("goodList",goodList.get(1).getUsername());
}
private void initRecyclerview() {
viewPager = rootView.findViewById(R.id.view_pager);
-
-
ArrayList fragments = new ArrayList<>();
for (int i = 0; i < goodsTypeList.size(); i++) {
-// for (int j = 0; j < goodList.size(); j++) {
-// if(goodList.get(i).getTypeId() == goodsTypeList.get(i).getId()){
-// typeGoodList.add(goodList.get(i));
-// }
-// }
- fragments.add(GoodsTypeFragment.newInstance(goodsTypeList.get(i).getType(), goodList));
+
+ fragments.add(GoodsTypeFragment.newInstance(goodsTypeList.get(i).getId(), goodList));
+
//EventBus发布消息
// EventBus.getDefault().postSticky(new EventMsg<>(goodsTypeList.get(i).getType(),200,goodList));
diff --git a/app/src/main/java/com/android/bean/Good.java b/app/src/main/java/com/android/bean/Good.java
index a5d5924..292a6ab 100644
--- a/app/src/main/java/com/android/bean/Good.java
+++ b/app/src/main/java/com/android/bean/Good.java
@@ -8,7 +8,7 @@ import java.util.ArrayList;
import java.util.List;
-public class Good implements Parcelable {
+public class Good implements Serializable {
private String addr;
private String appKey;
@@ -19,7 +19,7 @@ public class Good implements Parcelable {
private Long createTime;
private Long id;
private Long imageCode;
- private ArrayList imageUrlList;
+ private List imageUrlList;
private Integer price;
private Integer status;
private Long tUserId;
@@ -27,6 +27,67 @@ public class Good implements Parcelable {
private Integer typeId;
private List array;
+ protected Good(Parcel in) {
+ addr = in.readString();
+ appKey = in.readString();
+ avatar = in.readString();
+ content = in.readString();
+ username = in.readString();
+ typeName = in.readString();
+ if (in.readByte() == 0) {
+ createTime = null;
+ } else {
+ createTime = in.readLong();
+ }
+ if (in.readByte() == 0) {
+ id = null;
+ } else {
+ id = in.readLong();
+ }
+ if (in.readByte() == 0) {
+ imageCode = null;
+ } else {
+ imageCode = in.readLong();
+ }
+ if (in.readByte() == 0) {
+ price = null;
+ } else {
+ price = in.readInt();
+ }
+ if (in.readByte() == 0) {
+ status = null;
+ } else {
+ status = in.readInt();
+ }
+ if (in.readByte() == 0) {
+ tUserId = null;
+ } else {
+ tUserId = in.readLong();
+ }
+ if (in.readByte() == 0) {
+ tuserId = null;
+ } else {
+ tuserId = in.readLong();
+ }
+ if (in.readByte() == 0) {
+ typeId = null;
+ } else {
+ typeId = in.readInt();
+ }
+ }
+
+// public static final Creator CREATOR = new Creator() {
+// @Override
+// public Good createFromParcel(Parcel in) {
+// return new Good(in);
+// }
+//
+// @Override
+// public Good[] newArray(int size) {
+// return new Good[size];
+// }
+// };
+
public String getAddr() {
return addr;
}
@@ -99,7 +160,7 @@ public class Good implements Parcelable {
this.imageCode = imageCode;
}
- public ArrayList getImageUrlList() {
+ public List getImageUrlList() {
return imageUrlList;
}
@@ -155,14 +216,30 @@ public class Good implements Parcelable {
this.array = array;
}
- @Override
- public int describeContents() {
-
- return 0;
- }
-
- @Override
- public void writeToParcel(Parcel dest, int flags) {
-
- }
+// @Override
+// public int describeContents() {
+//
+// return 0;
+// }
+//
+// @Override
+// public void writeToParcel(Parcel dest, int flags) {
+// dest.writeString(addr);
+// dest.writeString(appKey);
+// dest.writeString(avatar);
+// dest.writeString(content);
+// dest.writeString(username);
+// dest.writeString(typeName);
+// dest.writeLong(createTime);
+// dest.writeLong(id);
+// dest.writeLong(imageCode);
+// dest.writeList(imageUrlList);
+// dest.writeInt(price);
+// dest.writeInt(status);
+// dest.writeLong(tUserId);
+// dest.writeLong(tuserId);
+// dest.writeInt(typeId);
+// dest.writeList(array);
+//
+// }
}
diff --git a/app/src/main/java/com/android/model/goods/GoodsHttp_interface.java b/app/src/main/java/com/android/model/goods/GoodsHttp_interface.java
index b6a4734..644cd8e 100644
--- a/app/src/main/java/com/android/model/goods/GoodsHttp_interface.java
+++ b/app/src/main/java/com/android/model/goods/GoodsHttp_interface.java
@@ -17,13 +17,13 @@ import retrofit2.http.QueryMap;
public interface GoodsHttp_interface {
@GET("tran/goods/type")
- @Headers({"appId:b34ac21286ae45938add627b418a4871",
- "appSecret:67526def9de11d4a64f5e80e60ed3372eea69"})
+ @Headers({"appId:e843562fefa144bf808a9621b107b3a4",
+ "appSecret:76387a99d8b52fad54b94bea1118262573381"})
Observable>> sendGetAllGoodsType();
@GET("tran/goods/all")
- @Headers({"appId:b34ac21286ae45938add627b418a4871",
- "appSecret:67526def9de11d4a64f5e80e60ed3372eea69"})
+ @Headers({"appId:e843562fefa144bf808a9621b107b3a4",
+ "appSecret:76387a99d8b52fad54b94bea1118262573381"})
Observable> sendGetAllGood(@Query("userId") Integer userId,
@QueryMap Map map
);
diff --git a/app/src/main/java/com/android/model/goods/GoodsModelimpl.java b/app/src/main/java/com/android/model/goods/GoodsModelimpl.java
index 870caae..773eb63 100644
--- a/app/src/main/java/com/android/model/goods/GoodsModelimpl.java
+++ b/app/src/main/java/com/android/model/goods/GoodsModelimpl.java
@@ -78,7 +78,7 @@ public class GoodsModelimpl implements GoodsModel{
Map map = new ArrayMap<>();
Observable> observable
- = httpInterface.sendGetAllGood(6, map);
+ = httpInterface.sendGetAllGood(17, map);
observable.subscribeOn(Schedulers.io())
.observeOn(AndroidSchedulers.mainThread())
diff --git a/app/src/main/java/com/android/utils/constraint/LoginConstraint.java b/app/src/main/java/com/android/utils/constraint/LoginConstraint.java
new file mode 100644
index 0000000..c5edc01
--- /dev/null
+++ b/app/src/main/java/com/android/utils/constraint/LoginConstraint.java
@@ -0,0 +1,7 @@
+package com.android.utils.constraint;
+
+public class LoginConstraint {
+ public static final String AppId_VALUE = "appId:b34ac21286ae45938add627b418a4871";
+ public static final String AppSecret_VALUE = "appId:b34ac21286ae45938add627b418a4871";
+ public static final String BASE_URL = "http://47.107.52.7:88/member/";
+}
diff --git a/app/src/main/res/drawable/add_shopping_cart_24.xml b/app/src/main/res/drawable/add_shopping_cart_24.xml
new file mode 100644
index 0000000..2f8406c
--- /dev/null
+++ b/app/src/main/res/drawable/add_shopping_cart_24.xml
@@ -0,0 +1,10 @@
+
+
+
diff --git a/app/src/main/res/drawable/goods.jpg b/app/src/main/res/drawable/goods.jpg
new file mode 100644
index 0000000..ba7aeeb
Binary files /dev/null and b/app/src/main/res/drawable/goods.jpg differ
diff --git a/app/src/main/res/drawable/op.jpg b/app/src/main/res/drawable/op.jpg
new file mode 100644
index 0000000..8f89068
Binary files /dev/null and b/app/src/main/res/drawable/op.jpg differ
diff --git a/app/src/main/res/layout/fragment_goods_type.xml b/app/src/main/res/layout/fragment_goods_type.xml
index 9ffaea8..1efbcf5 100644
--- a/app/src/main/res/layout/fragment_goods_type.xml
+++ b/app/src/main/res/layout/fragment_goods_type.xml
@@ -5,13 +5,9 @@
android:layout_height="match_parent"
tools:context=".activity.fragment.GoodsTypeFragment">
-
-
+ android:layout_height="wrap_content"/>
\ No newline at end of file
diff --git a/app/src/main/res/layout/fragment_home_page.xml b/app/src/main/res/layout/fragment_home_page.xml
index 3b28447..8c60fd9 100644
--- a/app/src/main/res/layout/fragment_home_page.xml
+++ b/app/src/main/res/layout/fragment_home_page.xml
@@ -6,20 +6,27 @@
android:layout_height="match_parent"
tools:context=".activity.fragment.HomePageFragment">
-
+
-
+ />
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/layout/goods_show_item.xml b/app/src/main/res/layout/goods_show_item.xml
new file mode 100644
index 0000000..90be38e
--- /dev/null
+++ b/app/src/main/res/layout/goods_show_item.xml
@@ -0,0 +1,61 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file