files = new ArrayList<>();
+ files.addAll(additionImageWrapper.getImageList());
+ for (int i = 0; i < images.size(); i++) {
+ files.add(new File(images.get(i)));
+ }
+ additionImageWrapper.setData(files);
+
+ }
+ }
+
+ private void selectImage() {
+ ImageSelector.builder()
+ .useCamera(false) // 设置是否使用拍照
+ .setSingle(false) //设置是否单选
+ .setViewImage(true) //是否点击放大图片查看,,默认为true
+ .setMaxSelectCount(additionImageWrapper.getRemainCount()) // 图片的最大选择数量,小于等于0时,不限数量。
+ .start(AddDiscoveryActivity.this, REQUEST_CODE_SELECT_PICTURE); // 打开相册
+ }
+
+
+ /*
+ * 检查访问相册权限
+ * */
+ private void checkAlbumPermission() {
+ if (Build.VERSION.SDK_INT < Build.VERSION_CODES.M) {
+ selectImage();
+ return;
+ }
+ if (ContextCompat.checkSelfPermission(this, Manifest.permission.WRITE_EXTERNAL_STORAGE) != PackageManager.PERMISSION_GRANTED) {
+ //权限还没有授予,需要在这里写申请权限的代码
+ if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
+ requestPermissions(new String[]{Manifest.permission.WRITE_EXTERNAL_STORAGE}, 2);
+ }
+
+ } else {
+ selectImage();
+ }
+ }
+}
diff --git a/app/src/main/java/com/sl/house_property/discovery/AdditionImageWrapper.java b/app/src/main/java/com/sl/house_property/discovery/AdditionImageWrapper.java
new file mode 100644
index 0000000..924a6ca
--- /dev/null
+++ b/app/src/main/java/com/sl/house_property/discovery/AdditionImageWrapper.java
@@ -0,0 +1,231 @@
+package com.sl.house_property.discovery;
+
+import android.content.Context;
+import android.support.v7.widget.GridLayoutManager;
+import android.support.v7.widget.RecyclerView;
+import android.view.LayoutInflater;
+import android.view.View;
+import android.view.ViewGroup;
+import android.widget.ImageView;
+
+import com.bumptech.glide.Glide;
+import com.bumptech.glide.request.RequestOptions;
+import com.sl.house_property.R;
+
+import java.io.File;
+import java.util.ArrayList;
+import java.util.List;
+
+/**
+ * Created by: xudiwei
+ *
+ * on: 2017/4/13.
+ *
+ * 描述:用于处理带有可添加item的列表布局,可用于动态创建时的图片内容的显示操作布局
+ *
+ * ------
+ * | |
+ * | + |
+ * | |
+ * ------
+ *
+ * 用例 :
+ *
+ * AdditionImageWrapper additionImageWrapper = new AdditionImageWrapper(Context, RecyclerView);
+ * additionImageWrapper.wrap(new AdditionImageWrapper.OnAdditionLayoutItemClick() {
+ *
+ * @Override public void onAdditionItemClick() {
+ * //添加item被点击
+ * }
+ * @Override public void onImageItemClick(int position) {
+ * //普通图片被点击
+ * }
+ * });
+ *
+ * //设置图片的数据
+ * additionImageWrapper.setData(List);
+ *
+ * //设置最多显示的图片数量(默认为9张)
+ * additionImageWrapper.setLimit(int);
+ *
+ * //设置RecyclerView的列(默认为4列)
+ * addition.setRow(int);
+ */
+
+public class AdditionImageWrapper {
+ private static final String TAG = "AdditionImageWrapper";
+ /*默认图片数量为4张*/
+ public static final int DEFAULT_COUNT = 9;
+ /*默认图片的列数为4格*/
+ public static final int DEFAULT_ROW = 4;
+ /*图片数据有存在包含添加item的数据的,(当图片的数量小于mImageCountLimit时)*/
+ private List mList = new ArrayList<>();
+ /*直实通过setData设置进来的图片*/
+ private List mRealList = new ArrayList<>();
+ //剩下几张 mImageCountLimit - list
+ private int mRemainCount = DEFAULT_COUNT;
+
+ private Context mContext;
+ private RecyclerView mRecyclerView;
+ private int mImageCountLimit = DEFAULT_COUNT;
+ private int mRecyclerViewRow = DEFAULT_ROW;
+ private OnAdditionLayoutItemClick mItemClick;
+ private CreateDynamicRVAdapter mAdapter;
+
+
+ public AdditionImageWrapper(Context context, RecyclerView recyclerView) {
+ this.mContext = context;
+ this.mRecyclerView = recyclerView;
+ }
+
+ public void setLimit(int imageCountLimit) {
+ this.mImageCountLimit = imageCountLimit;
+ this.mRemainCount = imageCountLimit;
+ }
+
+ public void setRow(int recyclerViewRow) {
+ this.mRecyclerViewRow = recyclerViewRow;
+ }
+
+ public int getRemainCount() {
+ return mRemainCount;
+ }
+
+ public List getImageList() {
+ return mRealList;
+ }
+
+
+ public void setData(List list) {
+ if (list.size() > mImageCountLimit) {
+ throw new IllegalArgumentException(" list size is 大于limit, limit是:" + mImageCountLimit + " 你给的是: " + list.size());
+ }
+ mRealList.clear();
+
+ mRealList.addAll(list);
+ mRemainCount = mImageCountLimit - list.size();
+
+ this.mList.clear();
+ this.mList.addAll(list);
+ if (this.mList.size() < mImageCountLimit) {
+ addDefaultItem();
+ }
+ if (null != mAdapter) {
+ mAdapter.notifyDataSetChanged();
+ }
+ }
+
+ /**
+ * 包裹
+ *
+ * @param itemClick
+ */
+ public void wrap(OnAdditionLayoutItemClick itemClick) {
+ this.mItemClick = itemClick;
+ initRecyclerView();
+ }
+
+ /**
+ * 添加珍上空的Item数据
+ */
+ private void addDefaultItem() {
+ mList.add(null);
+ }
+
+ private void initRecyclerView() {
+ addDefaultItem();
+ GridLayoutManager manager = new GridLayoutManager(mContext, mRecyclerViewRow);
+ mAdapter = new CreateDynamicRVAdapter(mContext, mList);
+ mRecyclerView.setLayoutManager(manager);
+ mRecyclerView.setAdapter(mAdapter);
+
+ }
+
+
+ public interface OnAdditionLayoutItemClick {
+ /**
+ * 添加图片的item被点击
+ */
+ void onAdditionItemClick();
+
+ /**
+ * 图片item被点击
+ *
+ * @param position
+ */
+ void onImageItemClick(int position);
+ }
+
+
+ /**
+ * RecyclerView适配器
+ */
+ private class CreateDynamicRVAdapter extends RecyclerView.Adapter {
+ private Context mContext;
+ private List mList;
+
+ CreateDynamicRVAdapter(Context context, List list) {
+ this.mContext = context;
+ this.mList = list;
+ }
+
+ @Override
+ public CreateDynamicRVAdapter.ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
+ View view = LayoutInflater.from(mContext).inflate(R.layout.item_rv_create_dynamic, parent, false);
+ return new ViewHolder(view);
+ }
+
+ @Override
+ public void onBindViewHolder(CreateDynamicRVAdapter.ViewHolder holder, int position) {
+ File path = mList.get(position);
+ if (position == mList.size() - 1 && null == path) {
+ holder.ivImage.setImageResource(R.mipmap.icon_add);
+ } else {
+ // holder.ivImage.setImageResource(R.mipmap.ic_avatar_default);
+ // mContext.(mContext, holder.ivImage, path);
+ // ImageLoaderKt.loadToFile(mContext,holder.ivImage,path);
+ RequestOptions requestOptions = new RequestOptions();
+ requestOptions.placeholder(R.mipmap.icon_default_rectangle);
+ requestOptions.error(R.mipmap.icon_default_rectangle);
+ requestOptions.skipMemoryCache(false);
+ Glide.with(mContext).load(path).apply(requestOptions).into(holder.ivImage);
+ }
+ }
+
+ @Override
+ public int getItemCount() {
+ return mList.size();
+ }
+
+ /**
+ * ViewHolder
+ */
+ class ViewHolder extends RecyclerView.ViewHolder {
+ ImageView ivImage;
+
+ public ViewHolder(View itemView) {
+ super(itemView);
+ ivImage = (ImageView) itemView.findViewById(R.id.riv_img);
+ if (null == mItemClick) {
+ return;
+ }
+
+ //设置点击事件
+ itemView.setOnClickListener(new View.OnClickListener() {
+ @Override
+ public void onClick(View v) {
+ int position = ViewHolder.this.getLayoutPosition();
+ File path = mList.get(position);
+ if (null == path && position == mList.size() - 1) {
+ mItemClick.onAdditionItemClick();
+ } else {
+ mItemClick.onImageItemClick(position);
+ }
+ }
+ });
+ }
+ }
+ }
+
+
+}
diff --git a/app/src/main/java/com/sl/house_property/discovery/DiscoveryFragment.java b/app/src/main/java/com/sl/house_property/discovery/DiscoveryFragment.java
index 9aa070c..05bded5 100644
--- a/app/src/main/java/com/sl/house_property/discovery/DiscoveryFragment.java
+++ b/app/src/main/java/com/sl/house_property/discovery/DiscoveryFragment.java
@@ -1,6 +1,7 @@
package com.sl.house_property.discovery;
import android.app.ProgressDialog;
+import android.content.Intent;
import android.graphics.Bitmap;
import android.graphics.Rect;
import android.graphics.drawable.BitmapDrawable;
@@ -100,6 +101,14 @@ public class DiscoveryFragment extends BaseFragment im
intRecycleView();
MainTabActivity activity = (MainTabActivity) getActivity();
activity.registerMyOnTouchListener(this);
+ mDataBinding.ivAdd.setOnClickListener(new View.OnClickListener() {
+ @Override
+ public void onClick(View v) {
+ Intent intent = new Intent(getContext(), AddDiscoveryActivity.class);
+ intent.putExtra("type",0);
+ startActivity(intent);
+ }
+ });
}
@Override
diff --git a/app/src/main/java/com/sl/house_property/discovery/ImageViewerAdapter.java b/app/src/main/java/com/sl/house_property/discovery/ImageViewerAdapter.java
new file mode 100644
index 0000000..a0f1e22
--- /dev/null
+++ b/app/src/main/java/com/sl/house_property/discovery/ImageViewerAdapter.java
@@ -0,0 +1,99 @@
+package com.sl.house_property.discovery;
+
+import android.content.Context;
+import android.support.v4.view.PagerAdapter;
+import android.util.Log;
+import android.view.LayoutInflater;
+import android.view.View;
+import android.view.ViewGroup;
+import android.widget.ImageView;
+
+
+import com.bumptech.glide.Glide;
+import com.bumptech.glide.request.RequestOptions;
+import com.github.chrisbanes.photoview.PhotoView;
+import com.sl.house_property.R;
+
+import java.util.List;
+
+
+/**
+ * 日期:2017.01.06
+ *
+ * 作者:xudiwei
+ *
+ * 描述::图片预览/删除页面的适配器
+ */
+public class ImageViewerAdapter extends PagerAdapter {
+
+ private static final String TAG = "ImageViewerAdapter";
+
+ private Context mContext;
+ private List mList;
+ private OnImageLongClickListener mImageLongClickListener;
+
+ public ImageViewerAdapter(Context context, List list) {
+ mContext = context;
+ mList = list;
+ }
+
+ @Override
+ public int getCount() {
+ return mList.size();
+ }
+
+ @Override
+ public boolean isViewFromObject(View view, Object object) {
+ return view == object;
+ }
+
+ @Override
+ public Object instantiateItem(ViewGroup container, final int position) {
+ View view = LayoutInflater.from(mContext).inflate(R.layout.item_preview, container, false);
+ PhotoView photoView = (PhotoView) view.findViewById(R.id.photoView);
+ photoView.setScaleType(ImageView.ScaleType.FIT_CENTER);
+
+ //点击事件
+ if (null != mImageLongClickListener) {
+ photoView.setOnLongClickListener(new View.OnLongClickListener() {
+ @Override
+ public boolean onLongClick(View v) {
+ mImageLongClickListener.onImageLongClick(position, v);
+ return false;
+ }
+ });
+ }
+
+ String url = mList.get(position);
+ Log.d(TAG,"url: "+url);
+// ImageLoader.loadToUrl(mContext, photoView, url);
+ // ImageLoaderKt.loadToUrl(mContext,photoView,url);
+ RequestOptions requestOptions = new RequestOptions();
+ requestOptions.placeholder(R.mipmap.icon_default_rectangle);
+ requestOptions.error(R.mipmap.icon_default_rectangle);
+ requestOptions.skipMemoryCache(false);
+ Glide.with(mContext).load(url).apply(requestOptions).into(photoView);
+ container.addView(view);
+ return view;
+ }
+
+ @Override
+ public void destroyItem(ViewGroup container, int position, Object object) {
+ container.removeView((View) object);
+ }
+
+ @Override
+ public int getItemPosition(Object object) {
+ return POSITION_NONE;
+// return super.getItemPosition(object);
+ }
+
+ public void setOnImageLongClickListener(OnImageLongClickListener listener) {
+ this.mImageLongClickListener = listener;
+ }
+
+ public interface OnImageLongClickListener {
+ void onImageLongClick(int position, View view);
+ }
+
+}
diff --git a/app/src/main/java/com/sl/house_property/discovery/ImageViewerAndDeleteActivity.java b/app/src/main/java/com/sl/house_property/discovery/ImageViewerAndDeleteActivity.java
new file mode 100644
index 0000000..ec0d3ce
--- /dev/null
+++ b/app/src/main/java/com/sl/house_property/discovery/ImageViewerAndDeleteActivity.java
@@ -0,0 +1,79 @@
+package com.sl.house_property.discovery;
+
+import android.content.Intent;
+import android.os.Bundle;
+import android.support.annotation.Nullable;
+import android.support.v4.view.ViewPager;
+import android.view.View;
+
+import com.sl.house_property.BaseActivity;
+import com.sl.house_property.R;
+import com.sl.house_property.databinding.ActivityImagePreviewAndDeleteBinding;
+
+import java.util.ArrayList;
+
+public class ImageViewerAndDeleteActivity extends BaseActivity {
+
+ private ArrayList mList;
+ private ImageViewerAdapter adapter;
+ private int index;
+
+ @Override
+ protected int getLayoutResId() {
+ return R.layout.activity_image_preview_and_delete;
+ }
+
+
+ @Override
+ protected void onCreate(@Nullable Bundle savedInstanceState) {
+ super.onCreate(savedInstanceState);
+ mList = getIntent().getStringArrayListExtra("images");
+ index = getIntent().getIntExtra("index", 0);
+ adapter = new ImageViewerAdapter(this, mList);
+ mDataBinding.tvTitle.setText(getString(R.string.text_preview_index, index + 1, mList.size()));
+
+ mDataBinding.tvDelete.setOnClickListener(new View.OnClickListener() {
+ @Override
+ public void onClick(View v) {
+ if (mList.size() == 1) {
+ mList.remove(index);
+
+ } else {
+ mList.remove(index);
+ adapter.notifyDataSetChanged();
+ mDataBinding.tvTitle.setText(getString(R.string.text_preview_index, index + 1, mList.size()));
+ }
+
+ }
+ });
+ mDataBinding.vpPreview.setAdapter(adapter);
+ mDataBinding.vpPreview.setCurrentItem(index);
+ mDataBinding.vpPreview.addOnPageChangeListener(new ViewPager.OnPageChangeListener() {
+ @Override
+ public void onPageScrolled(int i, float v, int i1) {
+
+ }
+
+ @Override
+ public void onPageSelected(int i) {
+ mDataBinding.tvTitle.setText(getString(R.string.text_preview_index, i + 1, mList.size()));
+ index = i;
+ }
+
+ @Override
+ public void onPageScrollStateChanged(int i) {
+
+ }
+ });
+ }
+
+ @Override
+ public void onBackPressed() {
+ //返回操作后的数据
+ Intent intent = new Intent();
+ intent.putStringArrayListExtra("images", mList);
+ setResult(200, intent);
+ super.onBackPressed();
+
+ }
+}
diff --git a/app/src/main/java/com/sl/house_property/discovery/PhotoViewPager.java b/app/src/main/java/com/sl/house_property/discovery/PhotoViewPager.java
new file mode 100644
index 0000000..778cc8c
--- /dev/null
+++ b/app/src/main/java/com/sl/house_property/discovery/PhotoViewPager.java
@@ -0,0 +1,41 @@
+package com.sl.house_property.discovery;
+
+import android.content.Context;
+import android.support.v4.view.ViewPager;
+import android.util.AttributeSet;
+import android.view.MotionEvent;
+
+
+/***
+ * 自定义viewPager操作类
+ */
+public class PhotoViewPager extends ViewPager {
+
+ public PhotoViewPager(Context context) {
+ super(context);
+ }
+
+ public PhotoViewPager(Context context, AttributeSet attrs) {
+ super(context, attrs);
+ }
+
+ @Override
+ public boolean onTouchEvent(MotionEvent ev) {
+ try {
+ return super.onTouchEvent(ev);
+ } catch (IllegalArgumentException ex) {
+ ex.printStackTrace();
+ }
+ return false;
+ }
+
+ @Override
+ public boolean onInterceptTouchEvent(MotionEvent ev) {
+ try {
+ return super.onInterceptTouchEvent(ev);
+ } catch (IllegalArgumentException ex) {
+ ex.printStackTrace();
+ }
+ return false;
+ }
+}
diff --git a/app/src/main/java/entity/AddressEntity.java b/app/src/main/java/entity/AddressEntity.java
new file mode 100644
index 0000000..3da0dfc
--- /dev/null
+++ b/app/src/main/java/entity/AddressEntity.java
@@ -0,0 +1,85 @@
+package entity;
+
+public class AddressEntity {
+ private String consignee_id;
+ private String userid;
+ private String name;
+ private String address;
+ private String mobile;
+ private String is_default;
+ private String is_del;
+ private String ctime;
+ private String region;
+
+ public String getConsignee_id() {
+ return consignee_id;
+ }
+
+ public void setConsignee_id(String consignee_id) {
+ this.consignee_id = consignee_id;
+ }
+
+ public String getUserid() {
+ return userid;
+ }
+
+ public void setUserid(String userid) {
+ this.userid = userid;
+ }
+
+ public String getName() {
+ return name;
+ }
+
+ public void setName(String name) {
+ this.name = name;
+ }
+
+ public String getAddress() {
+ return address;
+ }
+
+ public void setAddress(String address) {
+ this.address = address;
+ }
+
+ public String getMobile() {
+ return mobile;
+ }
+
+ public void setMobile(String mobile) {
+ this.mobile = mobile;
+ }
+
+ public String getIs_default() {
+ return is_default;
+ }
+
+ public void setIs_default(String is_default) {
+ this.is_default = is_default;
+ }
+
+ public String getIs_del() {
+ return is_del;
+ }
+
+ public void setIs_del(String is_del) {
+ this.is_del = is_del;
+ }
+
+ public String getCtime() {
+ return ctime;
+ }
+
+ public void setCtime(String ctime) {
+ this.ctime = ctime;
+ }
+
+ public String getRegion() {
+ return region;
+ }
+
+ public void setRegion(String region) {
+ this.region = region;
+ }
+}
diff --git a/app/src/main/java/entity/CartEntity.java b/app/src/main/java/entity/CartEntity.java
new file mode 100644
index 0000000..bad7632
--- /dev/null
+++ b/app/src/main/java/entity/CartEntity.java
@@ -0,0 +1,154 @@
+package entity;
+
+import java.util.ArrayList;
+import java.util.List;
+
+public class CartEntity {
+ private String userid;
+ private String nickname;
+ private String avatar;
+ private ArrayList list;
+ private boolean isCheck;
+
+ public boolean isCheck() {
+ return isCheck;
+ }
+
+ public void setCheck(boolean check) {
+ isCheck = check;
+ }
+
+ public String getUserid() {
+ return userid;
+ }
+
+ public void setUserid(String userid) {
+ this.userid = userid;
+ }
+
+ public String getNickname() {
+ return nickname;
+ }
+
+ public void setNickname(String nickname) {
+ this.nickname = nickname;
+ }
+
+ public String getAvatar() {
+ return avatar;
+ }
+
+ public void setAvatar(String avatar) {
+ this.avatar = avatar;
+ }
+
+ public ArrayList getList() {
+ return list;
+ }
+
+ public void setList(ArrayList list) {
+ this.list = list;
+ }
+
+ public static class CartList {
+ private String goods_detail;
+ private String thumb;
+ private String property;
+ private String sale_price;
+ private String sale_num;
+ private String cart_id;
+ private String goods_id;
+ private String product_code;
+ private String stock_status;
+ private String stock_msg;
+ private boolean isCheck;
+
+ public boolean isCheck() {
+ return isCheck;
+ }
+
+ public void setCheck(boolean check) {
+ isCheck = check;
+ }
+
+ public String getGoods_detail() {
+ return goods_detail;
+ }
+
+ public void setGoods_detail(String goods_detail) {
+ this.goods_detail = goods_detail;
+ }
+
+ public String getThumb() {
+ return thumb;
+ }
+
+ public void setThumb(String thumb) {
+ this.thumb = thumb;
+ }
+
+ public String getProperty() {
+ return property;
+ }
+
+ public void setProperty(String property) {
+ this.property = property;
+ }
+
+ public String getSale_price() {
+ return sale_price;
+ }
+
+ public void setSale_price(String sale_price) {
+ this.sale_price = sale_price;
+ }
+
+ public String getSale_num() {
+ return sale_num;
+ }
+
+ public void setSale_num(String sale_num) {
+ this.sale_num = sale_num;
+ }
+
+ public String getCart_id() {
+ return cart_id;
+ }
+
+ public void setCart_id(String cart_id) {
+ this.cart_id = cart_id;
+ }
+
+ public String getGoods_id() {
+ return goods_id;
+ }
+
+ public void setGoods_id(String goods_id) {
+ this.goods_id = goods_id;
+ }
+
+ public String getProduct_code() {
+ return product_code;
+ }
+
+ public void setProduct_code(String product_code) {
+ this.product_code = product_code;
+ }
+
+ public String getStock_status() {
+ return stock_status;
+ }
+
+ public void setStock_status(String stock_status) {
+ this.stock_status = stock_status;
+ }
+
+ public String getStock_msg() {
+ return stock_msg;
+ }
+
+ public void setStock_msg(String stock_msg) {
+ this.stock_msg = stock_msg;
+ }
+ }
+}
diff --git a/app/src/main/java/imageselector/PreviewActivity.java b/app/src/main/java/imageselector/PreviewActivity.java
index 36f1ecb..ba487ee 100644
--- a/app/src/main/java/imageselector/PreviewActivity.java
+++ b/app/src/main/java/imageselector/PreviewActivity.java
@@ -77,7 +77,7 @@ public class PreviewActivity extends AppCompatActivity {
@Override
protected void onCreate(@Nullable Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
- setContentView(R.layout.activity_preview2);
+ setContentView(R.layout.activity_preview);
setStatusBarVisible(true);
mImages = tempImages;
diff --git a/app/src/main/res/drawable/bg_tv_blue_round.xml b/app/src/main/res/drawable/bg_tv_blue_round.xml
new file mode 100644
index 0000000..32e4fee
--- /dev/null
+++ b/app/src/main/res/drawable/bg_tv_blue_round.xml
@@ -0,0 +1,6 @@
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/drawable/shape_blank.xml b/app/src/main/res/drawable/shape_blank.xml
new file mode 100644
index 0000000..2b561b1
--- /dev/null
+++ b/app/src/main/res/drawable/shape_blank.xml
@@ -0,0 +1,7 @@
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/drawable/shape_delete_bg.xml b/app/src/main/res/drawable/shape_delete_bg.xml
new file mode 100644
index 0000000..ae2ddd9
--- /dev/null
+++ b/app/src/main/res/drawable/shape_delete_bg.xml
@@ -0,0 +1,11 @@
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/drawable/text_login.xml b/app/src/main/res/drawable/text_login.xml
new file mode 100644
index 0000000..95d6c4e
--- /dev/null
+++ b/app/src/main/res/drawable/text_login.xml
@@ -0,0 +1,11 @@
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/layout/activity_add_discovery.xml b/app/src/main/res/layout/activity_add_discovery.xml
new file mode 100644
index 0000000..ca1cf76
--- /dev/null
+++ b/app/src/main/res/layout/activity_add_discovery.xml
@@ -0,0 +1,114 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/layout/activity_address_list.xml b/app/src/main/res/layout/activity_address_list.xml
new file mode 100644
index 0000000..ebbcc28
--- /dev/null
+++ b/app/src/main/res/layout/activity_address_list.xml
@@ -0,0 +1,56 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/layout/activity_image_preview_and_delete.xml b/app/src/main/res/layout/activity_image_preview_and_delete.xml
new file mode 100644
index 0000000..cdbadf7
--- /dev/null
+++ b/app/src/main/res/layout/activity_image_preview_and_delete.xml
@@ -0,0 +1,61 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/layout/fragment_cart.xml b/app/src/main/res/layout/fragment_cart.xml
new file mode 100644
index 0000000..89432f1
--- /dev/null
+++ b/app/src/main/res/layout/fragment_cart.xml
@@ -0,0 +1,143 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/layout/fragment_main4.xml b/app/src/main/res/layout/fragment_main4.xml
index 0adc8bc..d5fd4ce 100644
--- a/app/src/main/res/layout/fragment_main4.xml
+++ b/app/src/main/res/layout/fragment_main4.xml
@@ -1,93 +1,428 @@
-
-
-
+
+
+ android:orientation="vertical">
-
+ android:background="#F7F7F7"
+ android:fillViewport="true">
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+ android:focusable="true"
+ android:focusableInTouchMode="true"
+ android:orientation="vertical">
-
+
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/layout/item_address.xml b/app/src/main/res/layout/item_address.xml
new file mode 100644
index 0000000..ea5bbc8
--- /dev/null
+++ b/app/src/main/res/layout/item_address.xml
@@ -0,0 +1,99 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/layout/item_cart.xml b/app/src/main/res/layout/item_cart.xml
new file mode 100644
index 0000000..7fa6114
--- /dev/null
+++ b/app/src/main/res/layout/item_cart.xml
@@ -0,0 +1,58 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/layout/item_cart_cart.xml b/app/src/main/res/layout/item_cart_cart.xml
new file mode 100644
index 0000000..de9d0c3
--- /dev/null
+++ b/app/src/main/res/layout/item_cart_cart.xml
@@ -0,0 +1,74 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/layout/item_preview.xml b/app/src/main/res/layout/item_preview.xml
new file mode 100644
index 0000000..543e6eb
--- /dev/null
+++ b/app/src/main/res/layout/item_preview.xml
@@ -0,0 +1,13 @@
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/layout/item_rv_create_dynamic.xml b/app/src/main/res/layout/item_rv_create_dynamic.xml
new file mode 100644
index 0000000..f79f4c6
--- /dev/null
+++ b/app/src/main/res/layout/item_rv_create_dynamic.xml
@@ -0,0 +1,13 @@
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/layout/view_amount.xml b/app/src/main/res/layout/view_amount.xml
new file mode 100644
index 0000000..81788bc
--- /dev/null
+++ b/app/src/main/res/layout/view_amount.xml
@@ -0,0 +1,37 @@
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/mipmap-xhdpi/icon_add1.png b/app/src/main/res/mipmap-xhdpi/icon_add1.png
new file mode 100644
index 0000000..9276240
Binary files /dev/null and b/app/src/main/res/mipmap-xhdpi/icon_add1.png differ
diff --git a/app/src/main/res/mipmap-xhdpi/icon_minus.png b/app/src/main/res/mipmap-xhdpi/icon_minus.png
new file mode 100644
index 0000000..eb9eda5
Binary files /dev/null and b/app/src/main/res/mipmap-xhdpi/icon_minus.png differ
diff --git a/app/src/main/res/mipmap-xxhdpi/icon_add1.png b/app/src/main/res/mipmap-xxhdpi/icon_add1.png
new file mode 100644
index 0000000..226f7ea
Binary files /dev/null and b/app/src/main/res/mipmap-xxhdpi/icon_add1.png differ
diff --git a/app/src/main/res/mipmap-xxhdpi/icon_minus.png b/app/src/main/res/mipmap-xxhdpi/icon_minus.png
new file mode 100644
index 0000000..3ef17d8
Binary files /dev/null and b/app/src/main/res/mipmap-xxhdpi/icon_minus.png differ
diff --git a/app/src/main/res/values/attr.xml b/app/src/main/res/values/attr.xml
index 6abeab1..d1189a5 100644
--- a/app/src/main/res/values/attr.xml
+++ b/app/src/main/res/values/attr.xml
@@ -27,5 +27,13 @@
-
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml
index 6fc5673..55aa125 100644
--- a/app/src/main/res/values/strings.xml
+++ b/app/src/main/res/values/strings.xml
@@ -14,7 +14,7 @@
加载中...
请选择或输入缴费金额
请选择需要缴费的房屋
-
+ (%1$d/%2$d)预览
Hello blank fragment
Sign in