diff --git a/.idea/misc.xml b/.idea/misc.xml index 965af90..c1eb07d 100644 --- a/.idea/misc.xml +++ b/.idea/misc.xml @@ -23,10 +23,11 @@ - + + diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index 43d710f..d846309 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -33,22 +33,22 @@ tools:targetApi="31"> - - - - - - - + android:exported="true" > + + + + + + + diff --git a/app/src/main/java/com/android/activity/adapter/GoodsTypeAdapter.java b/app/src/main/java/com/android/activity/adapter/GoodsTypeAdapter.java new file mode 100644 index 0000000..77498ef --- /dev/null +++ b/app/src/main/java/com/android/activity/adapter/GoodsTypeAdapter.java @@ -0,0 +1,61 @@ +package com.android.activity.adapter; + +import android.annotation.SuppressLint; +import android.content.Context; +import android.util.Log; +import android.view.LayoutInflater; +import android.view.View; +import android.view.ViewGroup; +import android.widget.TextView; + +import androidx.annotation.NonNull; +import androidx.recyclerview.widget.RecyclerView; + +import com.android.R; +import com.android.bean.GoodsType; + +import java.util.List; + +public class GoodsTypeAdapter extends RecyclerView.Adapter { + private List goodsTypeList; + private Context context; + private int resourceId; + private ViewHolder holder; + + public GoodsTypeAdapter(List goodsTypeList, Context context,int resourceId) { + this.goodsTypeList = goodsTypeList; + this.context = context; + this.resourceId = resourceId; + } + + @NonNull + @Override + public ViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) { + View view = LayoutInflater.from(context) + .inflate(resourceId,parent,false); + holder = new ViewHolder(view); + return holder; + } + + @Override + public void onBindViewHolder(@NonNull ViewHolder holder, int position) { + GoodsType goodsType = goodsTypeList.get(position); + Log.d("1",goodsType.getType()); + holder.textView.setText(goodsType.getType()); + + } + + @Override + public int getItemCount() { + return goodsTypeList.size(); + } + + public class ViewHolder extends RecyclerView.ViewHolder { + TextView textView; + public ViewHolder(@NonNull View itemView) { + super(itemView); + + textView = itemView.findViewById(R.id.tv_goods_type_item); + } + } +} 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 96c9d35..1b0cf76 100644 --- a/app/src/main/java/com/android/activity/fragment/HomePageFragment.java +++ b/app/src/main/java/com/android/activity/fragment/HomePageFragment.java @@ -3,22 +3,41 @@ package com.android.activity.fragment; import android.content.Context; import android.os.Bundle; +import androidx.annotation.Nullable; import androidx.fragment.app.Fragment; +import androidx.recyclerview.widget.LinearLayoutManager; +import androidx.recyclerview.widget.RecyclerView; import android.util.Log; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; +import android.widget.ArrayAdapter; +import android.widget.Button; import com.android.R; +import com.android.activity.adapter.GoodsTypeAdapter; +import com.android.bean.GoodsType; +import com.android.bean.ResponseData; +import com.android.model.goods.GoodsListener; +import com.android.model.goods.GoodsModelimpl; + +import java.util.List; /** * A simple {@link Fragment} subclass. *com.android.activity.fragment.HomePageFragment * create an instance of this fragment. */ -public class HomePageFragment extends Fragment { +public class HomePageFragment extends Fragment implements View.OnClickListener, GoodsListener { private Context context = null; + private Button button; + private GoodsModelimpl goodsModelimpl; + private List goodsTypeList; + private GoodsTypeAdapter goodsTypeAdapter = null; + private RecyclerView recyclerView; + private View rootView; + @@ -32,14 +51,50 @@ public class HomePageFragment extends Fragment { super.onCreate(savedInstanceState); } + private void initGoodsTypeData() { + goodsModelimpl = new GoodsModelimpl(); + goodsModelimpl.getAllGoodsType(this); + + } + @Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { context = getActivity(); - View rootView = inflater.inflate(R.layout.fragment_home_page, + rootView = inflater.inflate(R.layout.fragment_home_page, container, false); + Log.e("1","onCreateView"); + initGoodsTypeData(); + + + return rootView; } + + + + @Override + public void onGetAllGoodsType(ResponseData> responseData) { + this.goodsTypeList = responseData.getData(); + initRecyclerview(); + + + } + + private void initRecyclerview() { + recyclerView = rootView.findViewById(R.id.lv_goodsType_list); + + goodsTypeAdapter = new GoodsTypeAdapter(goodsTypeList,context,R.layout.list_good_stype_item); + + LinearLayoutManager llm = new LinearLayoutManager(context); + recyclerView.setLayoutManager(llm); + recyclerView.setAdapter(goodsTypeAdapter); + } + + @Override + public void onClick(View v) { + + } } \ No newline at end of file diff --git a/app/src/main/java/com/android/bean/Goods.java b/app/src/main/java/com/android/bean/Goods.java new file mode 100644 index 0000000..1d68518 --- /dev/null +++ b/app/src/main/java/com/android/bean/Goods.java @@ -0,0 +1,143 @@ +package com.android.bean; + +import java.util.List; + + +public class Goods { + + private String addr; + private String appKey; + private String avatar; + private String content; + private String username; + private String typeName; + private Integer createTime; + private Integer id; + private Integer imageCode; + private Integer price; + private Integer status; + private Integer tUserId; + private Integer tuserId; + private Integer typeId; + private List array; + + public String getAddr() { + return addr; + } + + public void setAddr(String addr) { + this.addr = addr; + } + + public String getAppKey() { + return appKey; + } + + public void setAppKey(String appKey) { + this.appKey = appKey; + } + + public String getAvatar() { + return avatar; + } + + public void setAvatar(String avatar) { + this.avatar = avatar; + } + + public String getContent() { + return content; + } + + public void setContent(String content) { + this.content = content; + } + + public String getUsername() { + return username; + } + + public void setUsername(String username) { + this.username = username; + } + + public String getTypeName() { + return typeName; + } + + public void setTypeName(String typeName) { + this.typeName = typeName; + } + + public Integer getCreateTime() { + return createTime; + } + + public void setCreateTime(Integer createTime) { + this.createTime = createTime; + } + + public Integer getId() { + return id; + } + + public void setId(Integer id) { + this.id = id; + } + + public Integer getImageCode() { + return imageCode; + } + + public void setImageCode(Integer imageCode) { + this.imageCode = imageCode; + } + + public Integer getPrice() { + return price; + } + + public void setPrice(Integer price) { + this.price = price; + } + + public Integer getStatus() { + return status; + } + + public void setStatus(Integer status) { + this.status = status; + } + + public Integer gettUserId() { + return tUserId; + } + + public void settUserId(Integer tUserId) { + this.tUserId = tUserId; + } + + public Integer getTuserId() { + return tuserId; + } + + public void setTuserId(Integer tuserId) { + this.tuserId = tuserId; + } + + public Integer getTypeId() { + return typeId; + } + + public void setTypeId(Integer typeId) { + this.typeId = typeId; + } + + public List getArray() { + return array; + } + + public void setArray(List array) { + this.array = array; + } +} diff --git a/app/src/main/java/com/android/bean/GoodsType.java b/app/src/main/java/com/android/bean/GoodsType.java new file mode 100644 index 0000000..ff5e78b --- /dev/null +++ b/app/src/main/java/com/android/bean/GoodsType.java @@ -0,0 +1,22 @@ +package com.android.bean; + +public class GoodsType { + private Integer id; + private String type; + + public Integer getId() { + return id; + } + + public void setId(Integer id) { + this.id = id; + } + + public String getType() { + return type; + } + + public void setType(String type) { + this.type = type; + } +} 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 new file mode 100644 index 0000000..9ab3c18 --- /dev/null +++ b/app/src/main/java/com/android/model/goods/GoodsHttp_interface.java @@ -0,0 +1,20 @@ +package com.android.model.goods; + +import com.android.bean.GoodsType; +import com.android.bean.ResponseData; + +import java.util.List; + +import io.reactivex.rxjava3.core.Observable; +import retrofit2.http.GET; +import retrofit2.http.Headers; + +public interface GoodsHttp_interface { + @GET("tran/goods/type") + @Headers({"appId:b34ac21286ae45938add627b418a4871", + "appSecret:67526def9de11d4a64f5e80e60ed3372eea69"}) + Observable>> sendGetAllGoodsType(); + + + +} diff --git a/app/src/main/java/com/android/model/goods/GoodsListener.java b/app/src/main/java/com/android/model/goods/GoodsListener.java new file mode 100644 index 0000000..5e3ff31 --- /dev/null +++ b/app/src/main/java/com/android/model/goods/GoodsListener.java @@ -0,0 +1,11 @@ +package com.android.model.goods; + +import com.android.bean.GoodsType; +import com.android.bean.ResponseData; +import com.android.bean.User; + +import java.util.List; + +public interface GoodsListener { + void onGetAllGoodsType(ResponseData> responseData); +} diff --git a/app/src/main/java/com/android/model/goods/GoodsModel.java b/app/src/main/java/com/android/model/goods/GoodsModel.java new file mode 100644 index 0000000..7a92b1c --- /dev/null +++ b/app/src/main/java/com/android/model/goods/GoodsModel.java @@ -0,0 +1,8 @@ +package com.android.model.goods; + +import com.android.model.login.LoginListener; + +public interface GoodsModel { + void getAllGoodsType(GoodsListener goodsListener); + +} diff --git a/app/src/main/java/com/android/model/goods/GoodsModelimpl.java b/app/src/main/java/com/android/model/goods/GoodsModelimpl.java new file mode 100644 index 0000000..849edc2 --- /dev/null +++ b/app/src/main/java/com/android/model/goods/GoodsModelimpl.java @@ -0,0 +1,64 @@ +package com.android.model.goods; + +import android.util.Log; + +import com.android.bean.GoodsType; +import com.android.bean.ResponseData; +import com.android.model.login.LoginListener; + +import java.util.List; + +import io.reactivex.rxjava3.android.schedulers.AndroidSchedulers; +import io.reactivex.rxjava3.annotations.NonNull; +import io.reactivex.rxjava3.core.Observable; +import io.reactivex.rxjava3.core.Observer; +import io.reactivex.rxjava3.disposables.Disposable; +import io.reactivex.rxjava3.schedulers.Schedulers; +import retrofit2.Retrofit; +import retrofit2.adapter.rxjava3.RxJava3CallAdapterFactory; +import retrofit2.converter.gson.GsonConverterFactory; + +public class GoodsModelimpl implements GoodsModel{ + private String TAG ="GoodsModelimpl"; + + + + @Override + public void getAllGoodsType(GoodsListener goodsListener) { + Retrofit retrofit = new Retrofit.Builder() + .baseUrl("http://47.107.52.7:88/member/") + .addConverterFactory(GsonConverterFactory.create()) + .addCallAdapterFactory(RxJava3CallAdapterFactory.create()) + .build(); + GoodsHttp_interface httpInterface = + retrofit.create(GoodsHttp_interface.class); + Observable>> observable + = httpInterface.sendGetAllGoodsType(); + + observable + .subscribeOn(Schedulers.io()) + .observeOn(AndroidSchedulers.mainThread()) + .subscribe(new Observer>>() { + @Override + public void onSubscribe(@NonNull Disposable d) { + + } + + @Override + public void onNext(@NonNull ResponseData> listResponseData) { + Log.e(TAG,listResponseData.getMsg()); + goodsListener.onGetAllGoodsType(listResponseData); + } + + @Override + public void onError(@NonNull Throwable e) { + + } + + @Override + public void onComplete() { + + } + }); + } +} diff --git a/app/src/main/res/layout/fragment_home_page.xml b/app/src/main/res/layout/fragment_home_page.xml index 445105c..cfe4e1e 100644 --- a/app/src/main/res/layout/fragment_home_page.xml +++ b/app/src/main/res/layout/fragment_home_page.xml @@ -5,10 +5,12 @@ android:layout_height="match_parent" tools:context=".activity.fragment.HomePageFragment"> - - + + + \ No newline at end of file diff --git a/app/src/main/res/layout/list_good_stype_item.xml b/app/src/main/res/layout/list_good_stype_item.xml new file mode 100644 index 0000000..0063625 --- /dev/null +++ b/app/src/main/res/layout/list_good_stype_item.xml @@ -0,0 +1,15 @@ + + + + + + + \ No newline at end of file