diff --git a/.idea/misc.xml b/.idea/misc.xml
index f94125e..1abff70 100644
--- a/.idea/misc.xml
+++ b/.idea/misc.xml
@@ -24,6 +24,7 @@
+
@@ -38,6 +39,7 @@
+
@@ -52,6 +54,8 @@
+
+
diff --git a/app/src/main/java/com/android/activity/adapter/GoodsTypeFSAdapter.java b/app/src/main/java/com/android/activity/adapter/GoodsTypeFSAdapter.java
index 9f22778..a655743 100644
--- a/app/src/main/java/com/android/activity/adapter/GoodsTypeFSAdapter.java
+++ b/app/src/main/java/com/android/activity/adapter/GoodsTypeFSAdapter.java
@@ -8,7 +8,7 @@ import androidx.fragment.app.FragmentManager;
import androidx.lifecycle.Lifecycle;
import androidx.viewpager2.adapter.FragmentStateAdapter;
-import com.android.activity.fragment.GoodsTypeFragment;
+import com.android.activity.fragment.GoodShowFragment;
import com.android.bean.Good;
import com.android.bean.GoodsType;
diff --git a/app/src/main/java/com/android/activity/adapter/StaggerAdapter.java b/app/src/main/java/com/android/activity/adapter/StaggerAdapter.java
index e01407f..fdde0b6 100644
--- a/app/src/main/java/com/android/activity/adapter/StaggerAdapter.java
+++ b/app/src/main/java/com/android/activity/adapter/StaggerAdapter.java
@@ -28,7 +28,6 @@ import java.util.List;
public class StaggerAdapter extends RecyclerView.Adapter {
protected final ArrayList mData;
- private RecyclerView mList;
Context context;
private OnItemClickListener mOnItemClickListener;
diff --git a/app/src/main/java/com/android/activity/adapter/UserRecordsAdapter.java b/app/src/main/java/com/android/activity/adapter/UserRecordsAdapter.java
new file mode 100644
index 0000000..5477671
--- /dev/null
+++ b/app/src/main/java/com/android/activity/adapter/UserRecordsAdapter.java
@@ -0,0 +1,73 @@
+package com.android.activity.adapter;
+
+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.BaseRecords;
+import com.android.bean.queryBean.UserGoodsRecords;
+
+import java.text.SimpleDateFormat;
+import java.util.ArrayList;
+import java.util.Date;
+
+public class UserRecordsAdapter extends RecyclerView.Adapter {
+ private Context context;
+ private BaseRecords recordsData;
+ private Long userId;
+
+ public UserRecordsAdapter(Context context, BaseRecords recordsData,Long userId) {
+ this.context = context;
+ this.recordsData = recordsData;
+ this.userId = userId;
+ }
+
+ @NonNull
+ @Override
+ public UserRecordsAdapterHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
+ View view = LayoutInflater.from(parent.getContext()).
+ inflate(R.layout.recycleview_message_item, parent, false);
+ return new UserRecordsAdapterHolder(view);
+ }
+
+ @Override
+ public void onBindViewHolder(@NonNull UserRecordsAdapterHolder holder, int position) {
+ SimpleDateFormat sdf=new SimpleDateFormat("yyyy 年 MM 月 dd 日 HH 时 mm 分 ss 秒");
+ String sd = sdf.format(new Date(Long.parseLong(String.valueOf(recordsData.getRecords().get(position).getCreateTime())))); // 时间戳转换成时间
+ if (recordsData.getRecords().get(position).getSellerId() == userId){
+ holder.getTvName().setText("当前用户发布了:"+recordsData.getRecords().get(position).getGoodsDescription()+" "+sd);
+ }else {
+ holder.getTvName().setText("当前用户购买了: "+recordsData.getRecords().get(position).getGoodsDescription()+" "+sd);
+ }
+ }
+
+ @Override
+ public int getItemCount() {
+ return recordsData.getSize();
+ }
+
+ public class UserRecordsAdapterHolder extends RecyclerView.ViewHolder {
+ private TextView tvName;
+
+ public UserRecordsAdapterHolder(@NonNull View itemView) {
+
+ super(itemView);
+ tvName = itemView.findViewById(R.id.tv_message_item_desc);
+ }
+
+ public TextView getTvName() {
+ return tvName;
+ }
+
+ public void setTvName(TextView tvName) {
+ this.tvName = tvName;
+ }
+ }
+}
diff --git a/app/src/main/java/com/android/activity/fragment/GoodsTypeFragment.java b/app/src/main/java/com/android/activity/fragment/GoodShowFragment.java
similarity index 90%
rename from app/src/main/java/com/android/activity/fragment/GoodsTypeFragment.java
rename to app/src/main/java/com/android/activity/fragment/GoodShowFragment.java
index a14ab76..5387d09 100644
--- a/app/src/main/java/com/android/activity/fragment/GoodsTypeFragment.java
+++ b/app/src/main/java/com/android/activity/fragment/GoodShowFragment.java
@@ -33,12 +33,8 @@ import java.io.Serializable;
import java.util.ArrayList;
import java.util.List;
-/**
- * A simple {@link Fragment} subclass.
- * Use the {@link GoodsTypeFragment#newInstance} factory method to
- * create an instance of this fragment.
- */
-public class GoodsTypeFragment extends Fragment {
+
+public class GoodShowFragment extends Fragment {
// TODO: Rename parameter arguments, choose names that match
// the fragment initialization parameters, e.g. ARG_ITEM_NUMBER
@@ -54,14 +50,14 @@ public class GoodsTypeFragment extends Fragment {
private Integer mParam1;
- public GoodsTypeFragment() {
+ public GoodShowFragment() {
// Required empty public constructor
}
// TODO: Rename and change types and number of parameters
- public static GoodsTypeFragment newInstance(Integer param1,List goodsList) {
- GoodsTypeFragment fragment = new GoodsTypeFragment();
+ public static GoodShowFragment newInstance(Integer param1,List goodsList) {
+ GoodShowFragment fragment = new GoodShowFragment();
Bundle args = new Bundle();
args.putInt(ARG_TEXT, param1);
args.putSerializable(ARG_GOODS, (Serializable) goodsList);
@@ -123,7 +119,6 @@ public class GoodsTypeFragment extends Fragment {
@Override
public void onItemClick(int position) {
//监听的各种操作写在这里
- Toast.makeText(getActivity(), "我点击了第"+position+"item", Toast.LENGTH_SHORT).show();
Good goods = typeGoodList.get(position);
//Eventbus发生事件
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 03e901e..3456c9a 100644
--- a/app/src/main/java/com/android/activity/fragment/HomePageFragment.java
+++ b/app/src/main/java/com/android/activity/fragment/HomePageFragment.java
@@ -17,11 +17,13 @@ import android.widget.Button;
import com.android.R;
import com.android.activity.adapter.GoodsTypeFSAdapter;
+import com.android.bean.BaseRecords;
import com.android.bean.Good;
import com.android.bean.GoodRecords;
import com.android.bean.GoodsType;
import com.android.bean.ResponseData;
import com.android.bean.User;
+import com.android.bean.queryBean.UserGoodsRecords;
import com.android.model.goods.GoodsListener;
import com.android.model.goods.GoodsModelimpl;
import com.google.android.material.tabs.TabLayout;
@@ -32,7 +34,9 @@ import org.greenrobot.eventbus.Subscribe;
import org.greenrobot.eventbus.ThreadMode;
import java.util.ArrayList;
+import java.util.HashMap;
import java.util.List;
+import java.util.Map;
/**
* A simple {@link Fragment} subclass.
@@ -91,15 +95,17 @@ public class HomePageFragment extends Fragment implements View.OnClickListener,
goodsModelimpl = new GoodsModelimpl();
}
- goodsModelimpl.getAllGood(this);
+ Map map = new HashMap<>();
goodsModelimpl.getAllGoodsType(this);
- new Handler().postDelayed(new Runnable() {
- @Override
- public void run() {
- initRecyclerview();
-
- }
- },2000);
+ //发送获取用户交易记录
+ goodsModelimpl.getUserRecords(user.getId(),map,this);
+// new Handler().postDelayed(new Runnable() {
+// @Override
+// public void run() {
+// initRecyclerview();
+//
+// }
+// },2000);
}
@@ -109,24 +115,30 @@ public class HomePageFragment extends Fragment implements View.OnClickListener,
@Override
public void onGetAllGoodsType(ResponseData> responseData) {
this.goodsTypeList = responseData.getData();
+ goodsModelimpl.getAllGood(this);
+
}
//获取商品成功回调
@Override
public void onGetAllGoodSuccess(ResponseData responseData) {
this.goodList = responseData.getData().getRecords();
+ initRecyclerview();
Log.e("goodList",goodList.get(1).getUsername());
}
+ //获取用户交易记录
+ @Override
+ public void onGetUserRecordsSuccess(ResponseData> responseData) {
+ //通过EventBus传输用户的交易记录
+ EventBus.getDefault().postSticky(responseData.getData());
+ }
+
private void initRecyclerview() {
viewPager = rootView.findViewById(R.id.view_pager);
ArrayList fragments = new ArrayList<>();
for (int i = 0; i < goodsTypeList.size(); i++) {
-
-
- fragments.add(GoodsTypeFragment.newInstance(goodsTypeList.get(i).getId(), goodList));
-
-
+ fragments.add(GoodShowFragment.newInstance(goodsTypeList.get(i).getId(), goodList));
}
goodsTypeFSAdapter = new GoodsTypeFSAdapter(getActivity().getSupportFragmentManager(), getLifecycle(),fragments);
diff --git a/app/src/main/java/com/android/activity/fragment/MessagePageFragment.java b/app/src/main/java/com/android/activity/fragment/MessagePageFragment.java
index 31b9656..0c76044 100644
--- a/app/src/main/java/com/android/activity/fragment/MessagePageFragment.java
+++ b/app/src/main/java/com/android/activity/fragment/MessagePageFragment.java
@@ -3,47 +3,48 @@ package com.android.activity.fragment;
import android.os.Bundle;
import androidx.fragment.app.Fragment;
+import androidx.recyclerview.widget.RecyclerView;
+import androidx.recyclerview.widget.StaggeredGridLayoutManager;
+import android.util.Log;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import com.android.R;
+import com.android.activity.adapter.UserRecordsAdapter;
+import com.android.bean.BaseRecords;
+import com.android.bean.ResponseData;
+import com.android.bean.User;
+import com.android.bean.queryBean.UserGoodsRecords;
+
+import org.greenrobot.eventbus.EventBus;
+import org.greenrobot.eventbus.Subscribe;
+import org.greenrobot.eventbus.ThreadMode;
/**
* A simple {@link Fragment} subclass.
* Use the {@link MessagePageFragment#newInstance} factory method to
* create an instance of this fragment.
*/
-public class MessagePageFragment extends Fragment {
+public class MessagePageFragment extends Fragment{
- // TODO: Rename parameter arguments, choose names that match
- // the fragment initialization parameters, e.g. ARG_ITEM_NUMBER
- private static final String ARG_PARAM1 = "param1";
- private static final String ARG_PARAM2 = "param2";
+ BaseRecords recordsData;
+ private View view;
+ private RecyclerView recyclerView;
+ private UserRecordsAdapter userRecordsAdapter;
+ private User user;
- // TODO: Rename and change types of parameters
- private String mParam1;
- private String mParam2;
public MessagePageFragment() {
// Required empty public constructor
}
- /**
- * Use this factory method to create a new instance of
- * this fragment using the provided parameters.
- *
- * @param param1 Parameter 1.
- * @param param2 Parameter 2.
- * @return A new instance of fragment MessagePageFragment.
- */
- // TODO: Rename and change types and number of parameters
+
public static MessagePageFragment newInstance(String param1, String param2) {
MessagePageFragment fragment = new MessagePageFragment();
Bundle args = new Bundle();
- args.putString(ARG_PARAM1, param1);
- args.putString(ARG_PARAM2, param2);
+
fragment.setArguments(args);
return fragment;
}
@@ -51,16 +52,51 @@ public class MessagePageFragment extends Fragment {
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
- if (getArguments() != null) {
- mParam1 = getArguments().getString(ARG_PARAM1);
- mParam2 = getArguments().getString(ARG_PARAM2);
- }
+ EventBus.getDefault().register(this);
+ }
+
+ @Override
+ public void onDestroy() {
+ EventBus.getDefault().unregister(this);
+ super.onDestroy();
+ }
+
+ //获取用户交易记录
+ @Subscribe(threadMode = ThreadMode.MAIN,sticky = true)
+ public void getUserGoodsRecords(BaseRecords recordsData){
+ this.recordsData = recordsData;
+ }
+
+ //获取当前用户信息
+ @Subscribe(threadMode = ThreadMode.MAIN,sticky = true)
+ public void getUserRes(ResponseData responseData){
+ this.user = responseData.getData();
}
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
// Inflate the layout for this fragment
- return inflater.inflate(R.layout.fragment_message_page, container, false);
+ view = inflater.inflate(R.layout.fragment_message_page, container, false);
+ Log.e("MessagePageFragment",recordsData.getSize().toString());
+
+ initView();
+ return view;
+ }
+
+ private void initView() {
+ recyclerView = view.findViewById(R.id.rv_message);
+ if(recordsData.getRecords() != null){
+ userRecordsAdapter = new UserRecordsAdapter(getActivity(),recordsData,user.getId());
+ //准备布局管理器
+ StaggeredGridLayoutManager layoutManager = new StaggeredGridLayoutManager(1,
+ StaggeredGridLayoutManager.VERTICAL);
+ //设置布局管理器的方向
+ layoutManager.setReverseLayout(false);
+ recyclerView.setLayoutManager(layoutManager);
+ //设置布局管理器到RecyclerView中
+ recyclerView.setAdapter(userRecordsAdapter);
+
+ }
}
}
\ No newline at end of file
diff --git a/app/src/main/java/com/android/activity/fragment/PublishProductFragment.java b/app/src/main/java/com/android/activity/fragment/PublishProductFragment.java
index 8caa3d8..461b8a5 100644
--- a/app/src/main/java/com/android/activity/fragment/PublishProductFragment.java
+++ b/app/src/main/java/com/android/activity/fragment/PublishProductFragment.java
@@ -186,7 +186,6 @@ public class PublishProductFragment extends Fragment implements View.OnClickList
//上传
private void updateImage(List parts) {
-
upModelimpl.UpImage(parts,this);
}
@@ -194,6 +193,8 @@ public class PublishProductFragment extends Fragment implements View.OnClickList
public void upImageOnSuccess(ResponseData responseData) {
imageBean = responseData.getData();
Log.e("str",String.valueOf(imageBean.getImageCode()));
+
+
}
@Override
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 c8acdb2..57af194 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
@@ -21,20 +21,25 @@ 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") Long userId,
@QueryMap Map map
);
@GET("tran/trading/buy")
- @Headers({"appId:b34ac21286ae45938add627b418a4871",
- "appSecret:67526def9de11d4a64f5e80e60ed3372eea69"})
+ @Headers({"appId:e843562fefa144bf808a9621b107b3a4",
+ "appSecret:76387a99d8b52fad54b94bea1118262573381"})
Observable>> sendUserBuyGoods(@Query("userId") Long userId,
@QueryMap Map map);
+ @GET("tran/trading/records")
+ @Headers({"appId:e843562fefa144bf808a9621b107b3a4",
+ "appSecret:76387a99d8b52fad54b94bea1118262573381"})
+ Observable>> sendUserRecords(@Query("userId") Long userId,
+ @QueryMap Map map);
}
diff --git a/app/src/main/java/com/android/model/goods/GoodsListener.java b/app/src/main/java/com/android/model/goods/GoodsListener.java
index f1e3cba..d1d02ce 100644
--- a/app/src/main/java/com/android/model/goods/GoodsListener.java
+++ b/app/src/main/java/com/android/model/goods/GoodsListener.java
@@ -1,14 +1,18 @@
package com.android.model.goods;
+import com.android.bean.BaseRecords;
import com.android.bean.Good;
import com.android.bean.GoodRecords;
import com.android.bean.GoodsType;
import com.android.bean.ResponseData;
import com.android.bean.User;
+import com.android.bean.queryBean.UserGoodsRecords;
import java.util.List;
public interface GoodsListener {
void onGetAllGoodsType(ResponseData> responseData);
void onGetAllGoodSuccess(ResponseData responseData);
+ void onGetUserRecordsSuccess(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
index 1109967..03b15fe 100644
--- a/app/src/main/java/com/android/model/goods/GoodsModel.java
+++ b/app/src/main/java/com/android/model/goods/GoodsModel.java
@@ -2,8 +2,11 @@ package com.android.model.goods;
import com.android.model.login.LoginListener;
+import java.util.Map;
+
public interface GoodsModel {
void getAllGoodsType(GoodsListener goodsListener);
void getAllGood(GoodsListener goodsListener);
+ void getUserRecords(Long userId, Map map,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
index fffba95..263f4a1 100644
--- a/app/src/main/java/com/android/model/goods/GoodsModelimpl.java
+++ b/app/src/main/java/com/android/model/goods/GoodsModelimpl.java
@@ -4,11 +4,13 @@ import android.net.Uri;
import android.util.ArrayMap;
import android.util.Log;
+import com.android.bean.BaseRecords;
import com.android.bean.Good;
import com.android.bean.GoodRecords;
import com.android.bean.GoodsType;
import com.android.bean.ResponseData;
import com.android.bean.User;
+import com.android.bean.queryBean.UserGoodsRecords;
import com.android.model.login.LoginListener;
import com.android.utils.constraint.Constants;
@@ -119,5 +121,45 @@ public class GoodsModelimpl implements GoodsModel{
}
+ @Override
+ public void getUserRecords(Long userId, Map map,GoodsListener goodsListener) {
+ Retrofit retrofit = new Retrofit.Builder()
+ .baseUrl(Constants.BASE_URL)
+ .addCallAdapterFactory(RxJava3CallAdapterFactory.create())
+ .addConverterFactory(GsonConverterFactory.create())
+ .build();
+
+ GoodsHttp_interface httpInterface = retrofit.create(GoodsHttp_interface.class);
+ Observable>> observable
+ = httpInterface.sendUserRecords(userId, map);
+
+ observable.subscribeOn(Schedulers.io())
+ .observeOn(AndroidSchedulers.mainThread())
+ .subscribe(new Observer>>() {
+ @Override
+ public void onSubscribe(@NonNull Disposable d) {
+
+ }
+
+ @Override
+ public void onNext(@NonNull ResponseData> baseRecordsResponseData) {
+ goodsListener.onGetUserRecordsSuccess(baseRecordsResponseData);
+
+ }
+
+ @Override
+ public void onError(@NonNull Throwable e) {
+ Log.e("获取用户交易记录",e.toString());
+
+ }
+
+ @Override
+ public void onComplete() {
+
+ }
+ });
+
+ }
+
}
diff --git a/app/src/main/java/com/android/model/login/longinHttp_Interface.java b/app/src/main/java/com/android/model/login/longinHttp_Interface.java
index 24421d1..89013f6 100644
--- a/app/src/main/java/com/android/model/login/longinHttp_Interface.java
+++ b/app/src/main/java/com/android/model/login/longinHttp_Interface.java
@@ -18,19 +18,19 @@ import retrofit2.http.Query;
public interface longinHttp_Interface {
//登录
@POST("tran/user/login")
- @Headers({"appId:b34ac21286ae45938add627b418a4871",
- "appSecret:67526def9de11d4a64f5e80e60ed3372eea69"})
+ @Headers({"appId:e843562fefa144bf808a9621b107b3a4",
+ "appSecret:76387a99d8b52fad54b94bea1118262573381"})
Observable> login(@Body User user);
//获取验证码
@GET("tran/user/send")
- @Headers({"appId:b34ac21286ae45938add627b418a4871",
- "appSecret:67526def9de11d4a64f5e80e60ed3372eea69"})
+ @Headers({"appId:e843562fefa144bf808a9621b107b3a4",
+ "appSecret:76387a99d8b52fad54b94bea1118262573381"})
Observable> sendCode(@Query("phone") String phone);
@POST("tran/user/register")
- @Headers({"appId:b34ac21286ae45938add627b418a4871",
- "appSecret:67526def9de11d4a64f5e80e60ed3372eea69"})
+ @Headers({"appId:e843562fefa144bf808a9621b107b3a4",
+ "appSecret:76387a99d8b52fad54b94bea1118262573381"})
Observable> register(@Body User user);
diff --git a/app/src/main/java/com/android/model/purchase/Purchase_interface.java b/app/src/main/java/com/android/model/purchase/Purchase_interface.java
index 950f85d..37b3132 100644
--- a/app/src/main/java/com/android/model/purchase/Purchase_interface.java
+++ b/app/src/main/java/com/android/model/purchase/Purchase_interface.java
@@ -15,8 +15,8 @@ import retrofit2.http.Query;
public interface Purchase_interface {
@FormUrlEncoded
@POST("tran/trading")
- @Headers({"appId:b34ac21286ae45938add627b418a4871",
- "appSecret:67526def9de11d4a64f5e80e60ed3372eea69"})
+ @Headers({"appId:e843562fefa144bf808a9621b107b3a4",
+ "appSecret:76387a99d8b52fad54b94bea1118262573381"})
Observable> sendTrading(@Field("buyerId") Long buyerId,
@Field("goodsId") Long goodsId,
@Field("price") Integer price,
diff --git a/app/src/main/java/com/android/model/upload/UpHttp_interface.java b/app/src/main/java/com/android/model/upload/UpHttp_interface.java
index 3f48478..c14dfcf 100644
--- a/app/src/main/java/com/android/model/upload/UpHttp_interface.java
+++ b/app/src/main/java/com/android/model/upload/UpHttp_interface.java
@@ -18,13 +18,13 @@ import retrofit2.http.Part;
public interface UpHttp_interface {
@Multipart
@POST("tran/image/upload")
- @Headers({"appId:b34ac21286ae45938add627b418a4871",
- "appSecret:67526def9de11d4a64f5e80e60ed3372eea69"})
+ @Headers({"appId:e843562fefa144bf808a9621b107b3a4",
+ "appSecret:76387a99d8b52fad54b94bea1118262573381"})
Observable> sendUpImage(@Part List fileList);
@POST("tran/goods/add")
- @Headers({"appId:b34ac21286ae45938add627b418a4871",
- "appSecret:67526def9de11d4a64f5e80e60ed3372eea69"})
+ @Headers({"appId:e843562fefa144bf808a9621b107b3a4",
+ "appSecret:76387a99d8b52fad54b94bea1118262573381"})
Observable> sendAddGoods(@Body Good goods);
}
diff --git a/app/src/main/res/drawable/edittext_shape1.xml b/app/src/main/res/drawable/edittext_shape1.xml
new file mode 100644
index 0000000..f357b10
--- /dev/null
+++ b/app/src/main/res/drawable/edittext_shape1.xml
@@ -0,0 +1,6 @@
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/drawable/edittext_shape2.xml b/app/src/main/res/drawable/edittext_shape2.xml
new file mode 100644
index 0000000..3e4f44a
--- /dev/null
+++ b/app/src/main/res/drawable/edittext_shape2.xml
@@ -0,0 +1,5 @@
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/layout/fragment_message_page.xml b/app/src/main/res/layout/fragment_message_page.xml
index e66d985..885ef72 100644
--- a/app/src/main/res/layout/fragment_message_page.xml
+++ b/app/src/main/res/layout/fragment_message_page.xml
@@ -3,13 +3,38 @@
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
- android:background="@color/white"
+ android:background="@color/tag_bg"
tools:context=".activity.fragment.MessagePageFragment">
-
-
+
+ >
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/layout/recycleview_message_item.xml b/app/src/main/res/layout/recycleview_message_item.xml
new file mode 100644
index 0000000..403c003
--- /dev/null
+++ b/app/src/main/res/layout/recycleview_message_item.xml
@@ -0,0 +1,53 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/layout/recycleview_mine_item.xml b/app/src/main/res/layout/recycleview_mine_item.xml
new file mode 100644
index 0000000..f4c3a15
--- /dev/null
+++ b/app/src/main/res/layout/recycleview_mine_item.xml
@@ -0,0 +1,120 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/values/colors.xml b/app/src/main/res/values/colors.xml
index 7ae8af8..47424d5 100644
--- a/app/src/main/res/values/colors.xml
+++ b/app/src/main/res/values/colors.xml
@@ -27,6 +27,8 @@
#767676
#E2752F
+ #f5f5f5
+