XRecyclerView(fragment跳fragment)

这篇博客介绍了如何在Android应用中使用XRecyclerView展示数据,并实现点击商品跳转到详情Fragment。通过OkHttp获取数据,结合MVP模式进行开发。内容包括activity_main的设置,ViewPager1和ViewPager2的使用,以及EventBus在详情页面接收数据的实现。同时,文章提到了Adder布局和代码,用于商品数量的加减,以及自定义的DedalisBean和UrlBean数据类。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

MyApp

package com.bawei.lmx.monizk1;

import android.app.Application;

import com.uuzuche.lib_zxing.activity.ZXingLibrary;

public class MyApp extends Application {
    @Override
    public void onCreate() {
        super.onCreate();
        ZXingLibrary.initDisplayOpinion(this);
    }
}

OkHttp

package com.bawei.lmx.monizk1;

import android.os.Handler;

import java.io.IOException;
import java.util.Map;
import java.util.concurrent.TimeUnit;

import okhttp3.Call;
import okhttp3.Callback;
import okhttp3.FormBody;
import okhttp3.OkHttpClient;
import okhttp3.Request;
import okhttp3.Response;
import okhttp3.logging.HttpLoggingInterceptor;

public class OkHttpManager {

    private Handler handler;
    private OkHttpClient client;

    private OkHttpManager() {
        initOkHttp();
    }

    private static class OkHttpManagerHolder {
        private static OkHttpManager instance = new OkHttpManager();
    }

    public static OkHttpManager getInstance() {
        return OkHttpManagerHolder.instance;
    }

    private void initOkHttp() {
        handler = new Handler();
        OkHttpClient.Builder builder = new OkHttpClient.Builder();
        builder.readTimeout(10, TimeUnit.SECONDS)
                .writeTimeout(30, TimeUnit.SECONDS)
                .connectTimeout(10, TimeUnit.SECONDS)
                .addInterceptor(new HttpLoggingInterceptor().setLevel(HttpLoggingInterceptor.Level.BODY));
        client = builder.build();
    }

    public void doGet(String url, final NetWorkCallBack callBack) {
        Request request = new Request.Builder()
                .url(url)
                .build();
        client.newCall(request).enqueue(new Callback() {
            @Override
            public void onFailure(Call call, IOException e) {
                handler.post(new Runnable() {
                    @Override
                    public void run() {
                        if (callBack != null) {
                            callBack.onFail("error");
                        }
                    }
                });
            }

            @Override
            public void onResponse(Call call, Response response) throws IOException {
                if (response.isSuccessful()) {
                    final String string = response.body().string();
                    handler.post(new Runnable() {
                        @Override
                        public void run() {
                            if (callBack != null) {
                                callBack.onSuccess(string);
                            }
                        }
                    });
                } else {
                    if (callBack != null) {
                        callBack.onFail("");
                    }
                }
            }
        });
    }

    public void doPost(String url, Map<String, String> map, final NetWorkCallBack callBack) {
        FormBody.Builder builder = new FormBody.Builder();
        for (Map.Entry<String, String> entry : map.entrySet()) {
            builder.add(entry.getKey(), entry.getValue());
        }
        Request request = new Request.Builder()
                .url(url)
                .post(builder.build())
                .build();
        client.newCall(request).enqueue(new Callback() {
            @Override
            public void onFailure(Call call, IOException e) {
                handler.post(new Runnable() {
                    @Override
                    public void run() {
                        if (callBack != null) {
                            callBack.onFail("error");
                        }
                    }
                });
            }

            @Override
            public void onResponse(Call call, Response response) throws IOException {
                if (response.isSuccessful()) {
                    final String string = response.body().string();
                    handler.post(new Runnable() {
                        @Override
                        public void run() {
                            if (callBack != null) {
                                callBack.onSuccess(string);
                            }
                        }
                    });
                } else {
                    if (callBack != null) {
                        callBack.onFail("");
                    }
                }
            }
        });
    }

    public interface NetWorkCallBack {
        void onSuccess(String str);

        void onFail(String str);
    }
}

MVP

Contract

package com.bawei.lmx.monizk1.mvp;

public interface Conract {
    interface IView {
        void getData(String data);
    }

    interface IModel {
        void getRequest(String url, ModelCallBack callBack);

        interface ModelCallBack {
            void onSuccess(String data);

            void onFail();
        }
    }

    interface IPresenter {
        void attch(IView iView);

        void detch();

        void getShowData(String url);
    }
}

Model

package com.bawei.lmx.monizk1.mvp;

import com.bawei.lmx.monizk1.OkHttpManager;

public class Model implements Conract.IModel {
    @Override
    public void getRequest(String url, final ModelCallBack callBack) {
        OkHttpManager.getInstance().doGet(url, new OkHttpManager.NetWorkCallBack() {
            @Override
            public void onSuccess(String str) {
                callBack.onSuccess(str);
            }

            @Override
            public void onFail(String str) {

            }
        });
    }
}

Presenter

package com.bawei.lmx.monizk1.mvp;

public class Presenter implements Conract.IPresenter {

    private Model model;
    Conract.IView iView;

    @Override
    public void attch(Conract.IView iView) {
        model = new Model();
        this.iView = iView;
    }

    @Override
    public void detch() {
        if (model != null) {
            model = null;
        }
        if (iView != null) {
            iView = null;
        }
        System.gc();
    }

    @Override
    public void getShowData(String url) {
        model.getRequest(url, new Conract.IModel.ModelCallBack() {
            @Override
            public void onSuccess(String data) {
                iView.getData(data);
            }

            @Override
            public void onFail() {

            }
        });
    }
}

activity_main

实现viewpager滑动

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical"
    tools:context=".MainActivity">

    <android.support.v4.view.ViewPager
        android:id="@+id/viewPager"
        android:layout_width="match_parent"
        android:layout_height="0dp"
        android:layout_weight="1"></android.support.v4.view.ViewPager>

    <RadioGroup
        android:id="@+id/radioG"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:orientation="horizontal">

        <RadioButton
            android:id="@+id/vp1"
            android:layout_width="0dp"
            android:layout_height="wrap_content"
            android:layout_weight="1"
            android:button="@null"
            android:padding="20dp"
            android:checked="true"
            android:gravity="center"
            android:text="第一页"
            android:textSize="22sp" />
        <RadioButton
            android:id="@+id/vp2"
            android:layout_width="0dp"
            android:layout_height="wrap_content"
            android:layout_weight="1"
            android:button="@null"
            android:padding="20dp"
            android:gravity="center"
            android:text="第二页"
            android:textSize="22sp" />
    </RadioGroup>
</LinearLayout>

MainActivity

package com.bawei.lmx.monizk1;

import android.graphics.Color;
import android.support.v4.app.Fragment;
import android.support.v4.app.FragmentManager;
import android.support.v4.app.FragmentPagerAdapter;
import android.support.v4.view.ViewPager;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.RadioButton;
import android.widget.RadioGroup;

import com.bawei.lmx.monizk1.viewpager.Viewp1;
import com.bawei.lmx.monizk1.viewpager.Viewp2;

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

public class MainActivity extends AppCompatActivity {

    private ViewPager viewPager;
    private RadioGroup radioG;
    private ArrayList<Fragment> list;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        viewPager = findViewById(R.id.viewPager);
        radioG = findViewById(R.id.radioG);
        list = new ArrayList<>();
        list.add(new Viewp1());
        list.add(new Viewp2());
        viewPager.setOffscreenPageLimit(0);
        FragmentAdapter fragmentAdapter = new FragmentAdapter(getSupportFragmentManager(), list);
        viewPager.setAdapter(fragmentAdapter);
        //联动
        viewPager.setOnPageChangeListener(new ViewPager.OnPageChangeListener() {
            @Override
            public void onPageScrolled(int i, float v, int i1) {

            }

            @Override
            public void onPageSelected(int i) {
                int id = radioG.getChildAt(i).getId();
                radioG.check(id);
                for (int j = 0; j < list.size(); j++) {
                    RadioButton radioButton = (RadioButton) radioG.getChildAt(j);
                    if (j == i) {
                        radioButton.setTextColor(Color.RED);
                    } else {
                        radioButton.setTextColor(Color.BLACK);
                    }
                }
            }

            @Override
            public void onPageScrollStateChanged(int i) {

            }
        });
        radioG.setOnCheckedChangeListener(new RadioGroup.OnCheckedChangeListener() {
            @Override
            public void onCheckedChanged(RadioGroup group, int checkedId) {
                switch (checkedId) {
                    case R.id.vp1:
                        viewPager.setCurrentItem(0, false);
                        break;
                    case R.id.vp2:
                        viewPager.setCurrentItem(1, false);
                        break;
                }
            }
        });
    }

    class FragmentAdapter extends FragmentPagerAdapter {

        public FragmentAdapter(FragmentManager fm, List<Fragment> list) {
            super(fm);
        }

        @Override
        public Fragment getItem(int i) {
            return list.get(i);
        }

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

    public void onChangeItem() {
        viewPager.setCurrentItem(1, false);
    }

    public void onChangesItem() {
        viewPager.setCurrentItem(0, false);
    }
}

viewpager1

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical">

    <com.jcodecraeer.xrecyclerview.XRecyclerView
        android:id="@+id/xrecy"
        android:layout_width="match_parent"
        android:layout_height="match_parent"></com.jcodecraeer.xrecyclerview.XRecyclerView>
</LinearLayout>

ViewPager1

用XRecyclerView实现数据展示,并且点击商品进入详情页面,进行fragment跳fragment

package com.bawei.lmx.monizk1.viewpager;

import android.os.Bundle;
import android.support.annotation.NonNull;
import android.support.annotation.Nullable;
import android.support.v4.app.Fragment;
import android.support.v4.view.ViewPager;
import android.support.v7.widget.LinearLayoutManager;
import android.util.Log;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.LinearLayout;

import com.bawei.lmx.monizk1.MainActivity;
import com.bawei.lmx.monizk1.R;
import com.bawei.lmx.monizk1.adapter.UrlAdapter;
import com.bawei.lmx.monizk1.bean.DedalisBean;
import com.bawei.lmx.monizk1.bean.One;
import com.bawei.lmx.monizk1.bean.Three;
import com.bawei.lmx.monizk1.bean.UrlBean;
import com.bawei.lmx.monizk1.mvp.Conract;
import com.bawei.lmx.monizk1.mvp.Presenter;
import com.google.gson.Gson;
import com.jcodecraeer.xrecyclerview.XRecyclerView;

import org.greenrobot.eventbus.EventBus;

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

public class Viewp1 extends Fragment implements Conract.IView {

    private UrlBean urlBean;
    private static final String TAG = "Viewp1";
    String url = "http://172.17.8.100/small/commodity/v1/commodityList";
    private Presenter presenter;
    private XRecyclerView xrecy;
    private List<One> list;
    private ViewPager viewPager;
    private LinearLayout item_id;

    @Nullable
    @Override
    public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
        View view = inflater.inflate(R.layout.viewp1, container, false);
        presenter = new Presenter();
        presenter.attch(this);
        presenter.getShowData(url);
        xrecy = view.findViewById(R.id.xrecy);
        return view;
    }

    @Override
    public void getData(String data) {
        Gson gson = new Gson();
        urlBean = gson.fromJson(data, UrlBean.class);
        Three result = urlBean.getResult();
        List<One> commodityList = result.getMlss().getCommodityList();
        List<One> commodityList1 = result.getPzsh().getCommodityList();
        List<One> commodityList2 = result.getRxxp().getCommodityList();
        list = new ArrayList<>();
        list.addAll(commodityList);
        list.addAll(commodityList1);
        list.addAll(commodityList2);
        Log.d(TAG, "getData: " + urlBean.getMessage());
        LinearLayoutManager linearLayoutManager = new LinearLayoutManager(getActivity());
        linearLayoutManager.setOrientation(LinearLayoutManager.VERTICAL);
        xrecy.setLayoutManager(linearLayoutManager);
        UrlAdapter urlAdapter = new UrlAdapter(getActivity(), this.list);
        xrecy.setAdapter(urlAdapter);
        urlAdapter.rightClick(new UrlAdapter.setOnClick() {
            @Override
            public void onSetclick(int i) {
                if (getActivity() instanceof MainActivity) {
                    ((MainActivity) getActivity()).onChangeItem();
                    DedalisBean dedalisBean = new DedalisBean();
                    dedalisBean.setImg(list.get(i).getMasterPic());
                    dedalisBean.setName(list.get(i).getCommodityName());
                    dedalisBean.setPrice("¥" + list.get(i).getPrice() + "");
                    EventBus.getDefault().post(dedalisBean);
                }
            }
        });
    }
}

item_url

单条数据的布局

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/item_id"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:orientation="horizontal">

    <ImageView
        android:id="@+id/imageView_item"
        android:layout_width="150dp"
        android:layout_height="150dp"
        android:layout_margin="10dp" />

    <LinearLayout
        android:layout_width="0dp"
        android:layout_height="150dp"
        android:layout_weight="1"
        android:orientation="vertical">

        <TextView
            android:id="@+id/name_item"
            android:layout_width="match_parent"
            android:layout_height="0dp"
            android:layout_weight="1"
            android:gravity="center"
            android:textSize="22sp" />

        <LinearLayout
            android:layout_width="match_parent"
            android:layout_height="0dp"
            android:layout_weight="1"
            android:orientation="vertical">

            <TextView
                android:id="@+id/price_item"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:gravity="center_vertical"
                android:textColor="#ff5500"
                android:textSize="20sp" />

            <com.bawei.lmx.monizk1.Adder
                android:id="@+id/adder_item"
                android:layout_width="wrap_content"
                android:layout_height="0dp"
                android:layout_gravity="center"
                android:layout_weight="1"></com.bawei.lmx.monizk1.Adder>
        </LinearLayout>
    </LinearLayout>
</LinearLayout>

UrlAdapter

package com.bawei.lmx.monizk1.adapter;

import android.content.Context;
import android.support.annotation.NonNull;
import android.support.v4.app.FragmentActivity;
import android.support.v4.view.ViewPager;
import android.support.v7.widget.RecyclerView;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.Button;
import android.widget.EditText;
import android.widget.ImageView;
import android.widget.LinearLayout;
import android.widget.TextView;
import android.widget.Toast;

import com.bawei.lmx.monizk1.Adder;
import com.bawei.lmx.monizk1.R;
import com.bawei.lmx.monizk1.bean.One;
import com.bawei.lmx.monizk1.bean.UrlBean;
import com.bumptech.glide.Glide;
import com.bumptech.glide.request.RequestOptions;

import org.greenrobot.eventbus.EventBus;

import java.util.List;

public class UrlAdapter extends RecyclerView.Adapter<UrlAdapter.ViewHolder> {
    Context context;
    List<One> list;
    UrlAdapter.setOnClick onClick;
    private int a=1;

    public UrlAdapter(Context context, List<One> list) {
        this.context = context;
        this.list = list;
    }

    @NonNull
    @Override
    public ViewHolder onCreateViewHolder(@NonNull ViewGroup viewGroup, int i) {
        View inflate = LayoutInflater.from(context).inflate(R.layout.item_url, viewGroup, false);
        return new ViewHolder(inflate);
    }

    @Override
    public void onBindViewHolder(@NonNull final ViewHolder viewHolder, final int i) {

        viewHolder.name.setText(list.get(i).getCommodityName());
        viewHolder.price.setText("¥" + list.get(i).getPrice() + "");
        Glide.with(context).load(list.get(i).getMasterPic())
                .apply(RequestOptions.centerCropTransform())
                .into(viewHolder.imageView);
        int saleNum = list.get(i).getSaleNum();
        viewHolder.jia.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                a++;
                viewHolder.edit.setText(a+"");
            }
        });
        viewHolder.jian.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                if (a>1){
                    a--;
                    viewHolder.edit.setText(a+"");
                }else {
                    Toast.makeText(context,"数量不能小于1",Toast.LENGTH_SHORT).show();
                }
            }
        });
        viewHolder.itemView.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                onClick.onSetclick(viewHolder.getAdapterPosition()-1);
            }
        });
    }

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

    public class ViewHolder extends RecyclerView.ViewHolder {

        private final ImageView imageView;
        private final TextView name, price;
        private final LinearLayout item_id;
        private final ViewPager viewPager;
        private final Adder adder_item;
        private final Button jia;
        private final Button jian;
        private final EditText edit;

        public ViewHolder(@NonNull View itemView) {
            super(itemView);
            imageView = itemView.findViewById(R.id.imageView_item);
            name = itemView.findViewById(R.id.name_item);
            price = itemView.findViewById(R.id.price_item);
            item_id = itemView.findViewById(R.id.item_id);
            viewPager = itemView.findViewById(R.id.viewPager);
            adder_item = itemView.findViewById(R.id.adder_item);
            jia = itemView.findViewById(R.id.jia);
            jian = itemView.findViewById(R.id.jian);
            edit = itemView.findViewById(R.id.adder_id);

        }
    }

    public void rightClick(UrlAdapter.setOnClick onClick) {
        this.onClick = onClick;
    }

    public interface setOnClick {
        void onSetclick(int i);
    }
}

viewpager2

详情页面的布局

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical">

    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="60dp"
        android:orientation="horizontal">

        <ImageView
            android:id="@+id/back_homepage"
            android:layout_width="60dp"
            android:layout_height="60dp"
            android:src="@drawable/bace_homepage" />

        <TextView
            android:layout_width="0dp"
            android:layout_height="60dp"
            android:layout_weight="1"
            android:gravity="center"
            android:text="详情页面"
            android:textSize="26sp" />
    </LinearLayout>

    <ImageView
        android:id="@+id/imageView_viewP2"
        android:layout_width="match_parent"
        android:layout_height="200dp" />

    <TextView
        android:id="@+id/price_viewP2"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_marginTop="5dp"
        android:textColor="#ff5500"
        android:textSize="28sp" />

    <TextView
        android:id="@+id/name_viewP2"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_marginTop="10dp"
        android:textSize="30sp" />


    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:orientation="horizontal">

        <TextView
            android:id="@+id/total_viewP2"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="总价"
            android:textSize="22sp" />

        <com.bawei.lmx.monizk1.Adder
            android:id="@+id/adder_viewP2"
            android:layout_width="0dp"
            android:layout_height="wrap_content"
            android:layout_weight="1"></com.bawei.lmx.monizk1.Adder>
    </LinearLayout>
</LinearLayout>

ViewPager2

详情页面的代码,用EventBus接收传过来的值

package com.bawei.lmx.monizk1.viewpager;

import android.os.Bundle;
import android.support.annotation.NonNull;
import android.support.annotation.Nullable;
import android.support.v4.app.Fragment;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.Button;
import android.widget.EditText;
import android.widget.ImageView;
import android.widget.TextView;
import android.widget.Toast;

import com.bawei.lmx.monizk1.MainActivity;
import com.bawei.lmx.monizk1.R;
import com.bawei.lmx.monizk1.bean.DedalisBean;
import com.bawei.lmx.monizk1.bean.One;
import com.bumptech.glide.Glide;

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

import java.util.List;

public class Viewp2 extends Fragment {

    private ImageView imageView;
    private TextView name, price, total;
    DedalisBean dedalisBean1;
    private Button jia;
    private Button jian;
    private EditText edit;
    int a = 1;
    List<One> list;

    @Nullable
    @Override
    public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
        View view = inflater.inflate(R.layout.viewp2, container, false);
        EventBus.getDefault().register(this);
        view.findViewById(R.id.back_homepage).setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                if (getActivity() instanceof MainActivity) {
                    ((MainActivity) getActivity()).onChangesItem();
                }
            }
        });
        imageView = view.findViewById(R.id.imageView_viewP2);
        name = view.findViewById(R.id.name_viewP2);
        price = view.findViewById(R.id.price_viewP2);
        total = view.findViewById(R.id.total_viewP2);
        //加减器

        jia = view.findViewById(R.id.jia);
        jian = view.findViewById(R.id.jian);
        edit = view.findViewById(R.id.adder_id);
        jia.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                a++;
                edit.setText(a + "");
            }
        });
        jian.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                if (a > 1) {
                    a--;
                    edit.setText(a + "");
                } else {
                    Toast.makeText(getActivity(), "数量不能小于1", Toast.LENGTH_SHORT).show();
                }
            }
        });
        //总价
        return view;
    }

    @Subscribe(threadMode = ThreadMode.MAIN, sticky = true)
    public void getMessage(DedalisBean dedalisBean) {
        dedalisBean1 = dedalisBean;
        Glide.with(getActivity()).load(dedalisBean1.getImg()).into(imageView);
        name.setText(dedalisBean1.getName());
        price.setText(dedalisBean1.getPrice() + "元");
    }

    @Override
    public void onStop() {
        super.onStop();
        dedalisBean1 = null;
        getActivity().finish();
    }

    @Override
    public void onDestroyView() {
        super.onDestroyView();
        EventBus.getDefault().unregister(this);
    }
}

adder

加减器布局

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:orientation="horizontal">

    <Button
        android:id="@+id/jian"
        android:layout_width="35dp"
        android:layout_height="35dp"
        android:gravity="center"
        android:text="-" />

    <EditText
        android:id="@+id/adder_id"
        android:layout_width="50dp"
        android:gravity="center"
        android:layout_height="wrap_content"
        android:hint="1" />

    <Button
        android:id="@+id/jia"
        android:layout_width="35dp"
        android:layout_height="35dp"
        android:text="+" />
</LinearLayout>

Adder

加减器代码

package com.bawei.lmx.monizk1;

import android.content.Context;
import android.content.res.TypedArray;
import android.text.Editable;
import android.text.TextWatcher;
import android.util.AttributeSet;
import android.view.LayoutInflater;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.LinearLayout;

public class Adder extends LinearLayout {

    private Button jia;
    private Button jian;
    private EditText edit;

    public Adder(Context context) {
        this(context,null);
    }

    public Adder(Context context, AttributeSet attrs) {
        this(context, attrs,2);
    }

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

    }
    private OnaddDeleteClinkListener listener;
    public interface OnaddDeleteClinkListener{
        void onAddclink(View v);
        void onDelClink(View v);
    }
    public void setListener(OnaddDeleteClinkListener listener){
        this.listener=listener;
    }
    private void init(Context context,AttributeSet attrs,int defStyleAttr){
        View view = View.inflate(context, R.layout.adder, this);
        jia = view.findViewById(R.id.jia);
        jian = view.findViewById(R.id.jian);
        edit = view.findViewById(R.id.adder_id);
        jia.setOnClickListener(new OnClickListener() {
            @Override
            public void onClick(View v) {
                listener.onAddclink(v);
            }
        });
        jian.setOnClickListener(new OnClickListener() {
            @Override
            public void onClick(View v) {
                listener.onDelClink(v);
            }
        });
    }
    public void setCount(int num){
        edit.setText(num+"");
    }
    public int getCount(){
        int i = Integer.parseInt(edit.getText().toString());
        return i;
    }
}

DedalisBean

自定义的一个bean类,来回传值用的

package com.bawei.lmx.monizk1.bean;

public class DedalisBean {
    private String img;
    private String name;
    private String price;

    @Override
    public String toString() {
        return "DedalisBean{" +
                "img='" + img + '\'' +
                ", name='" + name + '\'' +
                ", price='" + price + '\'' +
                '}';
    }

    public String getImg() {
        return img;
    }

    public void setImg(String img) {
        this.img = img;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public String getPrice() {
        return price;
    }

    public void setPrice(String price) {
        this.price = price;
    }
}

UrlBean

one

package com.bawei.lmx.monizk1.bean;

public class One {
     /*"commodityId": 15,
             "commodityName": "玻儿精灵美妆蛋一个",
             "masterPic": "http://172.17.8.100/images/small/commodity/mzhf/mzgj/5/1.jpg",
             "price": 6,
             "saleNum": 0*/
     private int commodityId;
     private String commodityName;
     private String masterPic;
    private int price;
    private int saleNum;

    public int getCommodityId() {
        return commodityId;
    }

    public void setCommodityId(int commodityId) {
        this.commodityId = commodityId;
    }

    public String getCommodityName() {
        return commodityName;
    }

    public void setCommodityName(String commodityName) {
        this.commodityName = commodityName;
    }

    public String getMasterPic() {
        return masterPic;
    }

    public void setMasterPic(String masterPic) {
        this.masterPic = masterPic;
    }

    public int getPrice() {
        return price;
    }

    public void setPrice(int price) {
        this.price = price;
    }

    public int getSaleNum() {
        return saleNum;
    }

    public void setSaleNum(int saleNum) {
        this.saleNum = saleNum;
    }
}

two

package com.bawei.lmx.monizk1.bean;

import java.util.List;

public class Two {
    /*"commodityList": [
    * "id": 1004,
            "name": "品质生活"*/
    private List<One> commodityList;
    private int id;
    private String name;

    public List<One> getCommodityList() {
        return commodityList;
    }

    public void setCommodityList(List<One> commodityList) {
        this.commodityList = commodityList;
    }

    public int getId() {
        return id;
    }

    public void setId(int id) {
        this.id = id;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }
}

three

package com.bawei.lmx.monizk1.bean;

public class Three {
    /* "rxxp":
             "pzsh"
             "mlss":*/
    private Two rxxp;
    private Two pzsh;
    private Two mlss;

    public Two getRxxp() {
        return rxxp;
    }

    public void setRxxp(Two rxxp) {
        this.rxxp = rxxp;
    }

    public Two getPzsh() {
        return pzsh;
    }

    public void setPzsh(Two pzsh) {
        this.pzsh = pzsh;
    }

    public Two getMlss() {
        return mlss;
    }

    public void setMlss(Two mlss) {
        this.mlss = mlss;
    }
}

urlbean

package com.bawei.lmx.monizk1.bean;

import java.util.List;

public class UrlBean {
  /*"result": {
    "message": "查询成功",
            "status": "0000"*/
  private Three result;
  private String message;
  private String status;

    public Three getResult() {
        return result;
    }

    public void setResult(Three result) {
        this.result = result;
    }

    public String getMessage() {
        return message;
    }

    public void setMessage(String message) {
        this.message = message;
    }

    public String getStatus() {
        return status;
    }

    public void setStatus(String status) {
        this.status = status;
    }
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值