exercise



import android.content.Context;
import android.util.AttributeSet;
import android.view.View;
import android.widget.LinearLayout;
import android.widget.TextView;
import android.widget.Toast;

import androidx.annotation.Nullable;

public class Adder extends LinearLayout {
    private TextView jian;
    private TextView count;
    private TextView jia;
    private NumderChangeListener numderChangeListener;
    public Adder(Context context) {
        super(context);
        init(context);
    }

    public Adder(Context context, @Nullable AttributeSet attrs) {
        super(context, attrs);
        init(context);
    }

    public Adder(Context context, @Nullable AttributeSet attrs, int defStyleAttr) {
        super(context, attrs, defStyleAttr);
        init(context);

    }
        public void init(Context context){
            final View inflater = View.inflate(context,R.layout.view_adder,this);
            jia = inflater.findViewById(R.id.jia);
            jian=inflater.findViewById(R.id.jian);
            count = inflater.findViewById(R.id.count);
            jian.setOnClickListener(new OnClickListener() {
                @Override
                public void onClick(View v) {
                    String num = count.getText().toString();
                    Integer jian = Integer.valueOf(num);
                    if (jian>1){
                        jian--;
                        count.setText(String.valueOf(num));
                    }else {
                        Toast.makeText(getContext(),"最小值为1",Toast.LENGTH_LONG).show();
                    }

                }
            });
            jia.setOnClickListener(new OnClickListener() {
                @Override
                public void onClick(View v) {
                    String num = count.getText().toString();
                    Integer jia = Integer.valueOf(num);
                    jia++;
                    count.setText(String.valueOf(jia));

                }
            });
        }
        public void setNum(int num){
            count.setText(num+"");
        }

    public int getCount() {
        return Integer.valueOf(count.getText().toString());
    }
    public void setNumderChangeListener(NumderChangeListener numderChangeListener) {
        this.numderChangeListener = numderChangeListener;
    }
    public interface NumderChangeListener {
        void num(int od, int nol);
    }
}

import android.webkit.URLUtil;

import com.bw.liangxin.bean.ListResponse;
import com.bw.liangxin.bean.ShopResponse;
import com.bw.liangxin.mvp.util.UrilUtil;

import io.reactivex.Observable;
import retrofit2.http.GET;
import retrofit2.http.Header;
import retrofit2.http.Query;

public interface ApiService {
    @GET(UrilUtil.SHOP_URL)
    Observable<ShopResponse>getShop(@Query("commodityId")int commodityId);
    @GET(UrilUtil.ZHANSHI_URL)
    Observable<ListResponse>getList(@Header("userId")String userId,@Header("sessionId")String sessionId);
}

import androidx.appcompat.app.AppCompatActivity;

import android.content.Intent;
import android.os.Bundle;
import android.util.Log;
import android.view.View;
import android.webkit.WebView;
import android.widget.Button;
import android.widget.ImageView;
import android.widget.Toast;

import com.bumptech.glide.Glide;
import com.bw.liangxin.activity.ShopActivity;
import com.bw.liangxin.base.BaseActivity;
import com.bw.liangxin.base.BasePresenter;
import com.bw.liangxin.bean.ShopBean;
import com.bw.liangxin.bean.ShopResponse;
import com.bw.liangxin.mvp.util.constract.IReShopConstract;
import com.bw.liangxin.mvp.util.presenter.RecomandShopPresenterImpl;
import com.stx.xhb.xbanner.XBanner;

import java.util.Arrays;
import java.util.List;

import butterknife.BindView;
import butterknife.ButterKnife;

public class MainActivity extends BaseActivity<RecomandShopPresenterImpl> implements IReShopConstract.IView {
    @BindView(R.id.banner)
    XBanner banner;
    @BindView(R.id.web)
    WebView web;
    @BindView(R.id.tiaozhuan)
    Button btn_tiao;


    @Override
    protected void initView() {
        ButterKnife.bind(this);
    }

    @Override
    protected void initListener() {
        btn_tiao.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                Intent intent = new Intent(MainActivity.this, ShopActivity.class);
                startActivity(intent);
            }
import android.os.Bundle;
import android.os.PersistableBundle;

import androidx.annotation.Nullable;
import androidx.appcompat.app.AppCompatActivity;

import com.bw.liangxin.IBaseView;

public abstract class BaseActivity <presenter extends BasePresenter> extends AppCompatActivity implements IBaseView {
    public presenter presenter;


    @Override
    protected void onCreate(@Nullable Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(LayoutId());
        initView();
        presenter = setPresenter();
        if (presenter != null) {
            presenter.attachView(this);
        }
        initData();
        initListener();

    }

    protected abstract void initView();
    protected abstract void initListener();

    protected abstract void initData();

    protected abstract int LayoutId();

    protected abstract presenter setPresenter();

    @Override
    protected void onDestroy() {
        super.onDestroy();
        if (presenter != null) {
            presenter.detachView();
        }
    }
}

import android.os.Bundle;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;

import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
import androidx.fragment.app.Fragment;

import com.bw.liangxin.IBaseView;

public abstract class BaseFragment<presenter extends BasePresenter> extends Fragment implements IBaseView {
    private boolean istrue=false;
    protected  View view;
    private presenter presenter;
    private boolean isinitview=false;

    @Nullable
    @Override
    public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
        View view = inflater.inflate(LayoutId(),container,false);
        iniView();
        presenter = setPresenter();
        if (presenter != null) {
            presenter.attachView(this);
        }
        initData();
        initListener();
        return view;

    }

    protected abstract void iniView();

    protected abstract void initListener();

    protected abstract void initData();

    protected abstract int LayoutId();

    protected abstract presenter setPresenter();

    @Override
    public boolean getUserVisibleHint() {
        return super.getUserVisibleHint();
    }

    @Override
    public void setUserVisibleHint(boolean isVisibleToUser) {
        super.setUserVisibleHint(isVisibleToUser);
        if (isVisibleToUser && isinitview && !istrue) {
            initData();
            istrue = true;
        }

    }

    @Override
    public void onActivityCreated(@Nullable Bundle savedInstanceState) {
        super.onActivityCreated(savedInstanceState);
        if(getUserVisibleHint()&&!istrue&&isinitview){
            initData();
            istrue=true;
        }
    }

    @Override
    public void onDestroy() {
        super.onDestroy();
        if (presenter!=null){
            presenter.detachView();
        }
    }
}

import android.view.View;

import com.bw.liangxin.IBaseView;

public class BasePresenter <V extends IBaseView> {
    private V view;

    public V getView() {
        return view;
    }

    public void attachView(V view) {
        this.view = view;
    }

    public void detachView(){
        view = null;
    }
}

import androidx.appcompat.app.AppCompatActivity;

import android.os.Bundle;
import android.view.View;
import android.widget.CheckBox;
import android.widget.ExpandableListView;
import android.widget.TextView;

import com.bw.liangxin.EventBean;
import com.bw.liangxin.R;
import com.bw.liangxin.adapter.MyAdapter;
import com.bw.liangxin.base.BaseActivity;
import com.bw.liangxin.bean.ListBean;
import com.bw.liangxin.bean.ListResponse;
import com.bw.liangxin.bean.ShoppingCartListBean;
import com.bw.liangxin.mvp.util.constract.IReListConstract;
import com.bw.liangxin.mvp.util.presenter.RecomandListPresenterImpl;

import org.greenrobot.eventbus.EventBus;
import org.greenrobot.eventbus.Subscribe;

import java.util.ArrayList;
import java.util.List;

import butterknife.BindView;
import butterknife.ButterKnife;

public class ShopActivity extends BaseActivity<RecomandListPresenterImpl> implements IReListConstract.IView {
    @BindView(R.id.expandble)
    ExpandableListView expandableListView;
    private MyAdapter adapter;
    @BindView(R.id.quanxuan)
    CheckBox checkBox;
    @BindView(R.id.count)
    TextView text_count;
    @Override
    protected void initView() {
        ButterKnife.bind(this);
    }

    @Override
    protected void initListener() {

    }

    @Override
    protected void initData() {
        presenter.getComandList("906","1596457022881906");


    }

    @Override
    protected int LayoutId() {
        return R.layout.activity_shop;
    }

    @Override
    protected RecomandListPresenterImpl setPresenter() {
        return new RecomandListPresenterImpl();
    }

    @Override
    public void onSuccess(ListResponse response) {

        adapter = new MyAdapter(response.result);
        expandableListView.setAdapter(adapter);
        checkBox.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                double price=0;
                boolean checked = checkBox.isChecked();
                List<ListBean> list = adapter.getList();
                for (int i = 0; i < list.size(); i++) {
                    ArrayList<ShoppingCartListBean> shoppingCartList = list.get(i).shoppingCartList;
                    int size = shoppingCartList.size();
                    for (int j = 0; j < size; j++) {
                        ShoppingCartListBean shoppingCartListBean = shoppingCartList.get(j);
                        shoppingCartListBean.check = checked;
                    }
                }
                adapter.notifyDataSetChanged();
                price();

            }
        });
    }

    @Override
    public void onFailue(String msg) {

    }
    public void price(){
        double price1=0;
        List<ListBean> list = adapter.getList();
        for (int i = 0; i < list.size(); i++) {
            ListBean listBean = list.get(i);
            ArrayList<ShoppingCartListBean> shoppingCartList = listBean.shoppingCartList;
            int size = shoppingCartList.size();
            for (int j = 0; j < size; j++) {
                ShoppingCartListBean shoppingCartListBean = shoppingCartList.get(j);
                double price = shoppingCartListBean.price;
                int count = shoppingCartList.get(j).count;
                if (shoppingCartList.get(j).check){
                    price1+=price*count;
                }
            }
        }
        text_count.setText("¥"+price1);
    }
    @Subscribe
    public void jieshou(EventBean bean){

        price();
    }

    @Override
    protected void onStart() {
        super.onStart();
        EventBus.getDefault().register(this);

    }

    @Override
    protected void onStop() {
        super.onStop();
        EventBus.getDefault().unregister(this);
    }
}

import android.view.View;
import android.view.ViewGroup;
import android.widget.BaseExpandableListAdapter;
import android.widget.CheckBox;
import android.widget.TextView;

import com.bw.liangxin.Adder;
import com.bw.liangxin.EventBean;
import com.bw.liangxin.R;
import com.bw.liangxin.bean.ListBean;
import com.bw.liangxin.bean.ShoppingCartListBean;
import com.facebook.drawee.view.SimpleDraweeView;

import org.greenrobot.eventbus.EventBus;

import java.util.ArrayList;
import java.util.List;

public class MyAdapter extends BaseExpandableListAdapter {
    private List<ListBean>list = new ArrayList();

    public MyAdapter(List<ListBean> list) {
        this.list = list;
    }

    public List<ListBean> getList() {
        return list;
    }

    @Override
    public int getGroupCount() {
        return list.size();
    }

    @Override
    public int getChildrenCount(int groupPosition) {
        ListBean listBean = list.get(groupPosition);
        ArrayList<ShoppingCartListBean> shoppingCartList = listBean.shoppingCartList;
        return shoppingCartList.size();
    }

    @Override
    public Object getGroup(int groupPosition) {
        return list.get(groupPosition);
    }

    @Override
    public Object getChild(int groupPosition, int childPosition) {
        ListBean listBean = list.get(groupPosition);
        ArrayList<ShoppingCartListBean> shoppingCartList = listBean.shoppingCartList;
        return shoppingCartList.get(childPosition);
    }

    @Override
    public long getGroupId(int groupPosition) {
        return groupPosition;
    }

    @Override
    public long getChildId(int groupPosition, int childPosition) {
        return childPosition;
    }

    @Override
    public boolean hasStableIds() {
        return true;
    }

    @Override
    public View getGroupView(int groupPosition, boolean isExpanded, View convertView, ViewGroup parent) {
        GroupViewHolder holder;
        if (convertView==null){
             convertView = View.inflate(parent.getContext(), R.layout.layout_item, null);
            holder = new GroupViewHolder();
            holder.textView =convertView.findViewById(R.id.text_mei);

            convertView.setTag(holder);
        }else {
            holder = (GroupViewHolder) convertView.getTag();
            holder.textView.setText(list.get(groupPosition).categoryName);
        }
        return convertView;
    }

    @Override
    public View getChildView(int groupPosition, int childPosition, boolean isLastChild, View convertView, ViewGroup parent) {
        ChildViewHolder holder;
        if(convertView==null){
            convertView= View.inflate(parent.getContext(),R.layout.item_two,null);
            holder = new ChildViewHolder();
            holder.simpleDraweeView = convertView.findViewById(R.id.simple_pic);
            holder.text_name = convertView.findViewById(R.id.name);
            holder.text_price = convertView.findViewById(R.id.price);
            holder.checkBox=convertView.findViewById(R.id.checkbox);
            convertView.setTag(holder);
        }else {
            holder = (ChildViewHolder) convertView.getTag();
        }
        ListBean listBean = list.get(groupPosition);
        ArrayList<ShoppingCartListBean> shoppingCartList = listBean.shoppingCartList;
        holder.simpleDraweeView.setImageURI(shoppingCartList.get(childPosition).pic);
        holder.text_name.setText(shoppingCartList.get(childPosition).commodityName);
        double price = shoppingCartList.get(childPosition).price;
        String price1 = String.valueOf(price);
        holder.text_price.setText(price1);
        holder.checkBox.setChecked(shoppingCartList.get(childPosition).check);
        holder.checkBox.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                boolean checked = holder.checkBox.isChecked();
                shoppingCartList.get(childPosition).check=checked;

                EventBus.getDefault().post(new EventBean());
            }
        });

        return convertView;
    }

    @Override
    public boolean isChildSelectable(int groupPosition, int childPosition) {
        return false;
    }
    public class GroupViewHolder{
        TextView textView;
    }
    public class ChildViewHolder{
        SimpleDraweeView simpleDraweeView;
        TextView text_name;
        TextView text_price;
        Adder adder;
        CheckBox checkBox;
    }

}

import com.bw.liangxin.base.BasePresenter;
import com.bw.liangxin.bean.ShopResponse;
import com.bw.liangxin.mvp.util.constract.IReShopConstract;
import com.bw.liangxin.mvp.util.moudlue.RecomandShopMoudlueImpl;

public class RecomandShopPresenterImpl extends BasePresenter<IReShopConstract.IView> implements IReShopConstract.IPresenter {
    private RecomandShopMoudlueImpl moudlue;
    public  RecomandShopPresenterImpl(){
        moudlue = new RecomandShopMoudlueImpl();
    }

    @Override
    public void getShop(int commodityId) {
        moudlue.getShop(commodityId, new IReShopConstract.IMoudlue.DataCallBack() {
            @Override
            public void onSuccess(ShopResponse response) {
                if (getView() != null) {
                    getView().onSuccess(response);
                }
            }

            @Override
            public void onFailue(String msg) {
                if (getView() != null) {
                    getView().onFailue(msg);
                }
            }
        });
    }
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值