购物车之跳转到详情页面

一,在上一步购物车之列表展示数据中的适配器中自定义回调接口用来创建条目点击事件

      

//子条目点击的方法
private Click click;

public void setClick(Click click) {
    this.click = click;
}

public interface Click{
    void itemclick(int position);
}

二,然后再适配器中,把参数传过去

//点击监听
view.setOnClickListener(new View.OnClickListener() {
    @Override
    public void onClick(View v) {
        int pid = lists.get(position).getPid();
        click.itemclick(pid);
    }
});


三,在ACTIVITY中接收到传过来的值

// 接收上边传过来的值
Intent intent = getIntent();
pid = intent.getStringExtra("pid");

四,在重写的方法里设置值

@Override
public void successTwo(TwoBean twoBean) {
    String images = twoBean.getData().getImages();
    String[] split = images.split("\\|");
    Glide.with(this).load(split[0]).into(newXiangQing_imageview);
    //画那条作废线
    /*TextPaint paint = mTvBargainPrice.getPaint();
    paint.setFlags(Paint.STRIKE_THRU_TEXT_FLAG);*/
    newXiangQing_price.setText("原价:" + twoBean.getData().getPrice());
    newXiangQing_title.setText(twoBean.getData().getTitle());
}

五,具体代码实现

     1,m层

    

public class TwoModel {
    //提供对应的上拉下拉方法
    //up为true就是下拉刷新,为false就是上拉加载
    public void show(String pid, final TwoModelCallBack twoModelCallBack) {
        //拿封装好的网络请求数据,第一个参数map类型,不需要,第二个,请求路劲,第三个回调,泛型是你的bean指定类型
        OkhttpUtils.getInstance().asy(null, "http://120.27.23.105/product/getProductDetail?pid="+pid+"&source=android", new AbstractUiCallBack<TwoBean>() {
            @Override
            public void success(TwoBean twoBean) {
                //成功就调到数据了,然后要回调到presenter里
                twoModelCallBack.successTwo(twoBean);
            }

            @Override
            public void failure(Exception e) {
                twoModelCallBack.failureTwo(e);
            }
        });
    }

    //创建回调接口
    public interface TwoModelCallBack {
        public void successTwo(TwoBean twoBean);

        public void failureTwo(Exception e);
    }
}
  

    2,V层

public interface TwoView {
    //数据成功回调的方法,需要数据参数
    public void successTwo(TwoBean twoBean);

    //失败,封装的接口(okhttp)里回调一个Exception
    public void fasleTwo(Exception e);
}

    3,P层

public class TwoPresenter {
    //实例model
    TwoModel twoModel;
    //实例view
    TwoView twoView;

    //构造方法
    public TwoPresenter(TwoView twoView) {
        //view接口传过来他就持有MainActivityView,然后定义出来,构造
        this.twoView = twoView;
        this.twoModel = new TwoModel();
    }

    //获取数据的方法,上拉刷新和下拉加载
    public void getData(String pid) {
        twoModel.show(pid, new TwoModel.TwoModelCallBack() {
            @Override
            public void successTwo(TwoBean twoBean) {
                //通过view的接口往回调
                twoView.successTwo(twoBean);
            }

            @Override
            public void failureTwo(Exception e) {
                twoView.fasleTwo(e);
            }

        });

    }
}

    4,activity

public class SecendActivity extends AppCompatActivity implements TwoView,AddView{
    private ImageView newXiangQing_imageview;
    private TextView newXiangQing_title;
    private TextView newXiangQing_price;
    private Button butn_addcar;
    private Button butn_car;
    private TwoPresenter presenter;
    private AddPresenter addPresenter;
    private String pid;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_secend);
        //找到控件
        newXiangQing_imageview = findViewById(R.id.newXiangQing_imageview);
        newXiangQing_title = findViewById(R.id.newXiangQing_title);
        newXiangQing_price = findViewById(R.id.newXiangQing_price);
        butn_addcar = findViewById(R.id.butn_addcar);
        butn_car = findViewById(R.id.butn_car);
        // 接收上边传过来的值
        Intent intent = getIntent();
        pid = intent.getStringExtra("pid");
        //实例化P层
        presenter = new TwoPresenter(this);
        presenter.getData(pid);
        addPresenter = new AddPresenter(this);
        //购物车点击跳转
        butn_car.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                Intent intentCar = new Intent(SecendActivity.this,ShopCarActivity.class);
                startActivity(intentCar);
            }
        });
        //设置按钮的点击事件
        butn_addcar.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                Toast.makeText(SecendActivity.this, "添加成功", Toast.LENGTH_SHORT).show();
            }
        });


    }

    @Override
    public void successTwo(TwoBean twoBean) {
        String images = twoBean.getData().getImages();
        String[] split = images.split("\\|");
        Glide.with(this).load(split[0]).into(newXiangQing_imageview);
        //画那条作废线
        /*TextPaint paint = mTvBargainPrice.getPaint();
        paint.setFlags(Paint.STRIKE_THRU_TEXT_FLAG);*/
        newXiangQing_price.setText("原价:" + twoBean.getData().getPrice());
        newXiangQing_title.setText(twoBean.getData().getTitle());
    }

    @Override
    public void fasleTwo(Exception e) {

    }

    @Override
    public void successAdd(final AddBean addBean) {
        addPresenter.getData(addBean.getCode(),addBean.getMsg());
    }

    @Override
    public void fasleAdd(Exception e) {

    }
}

   5,布局

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical"
    android:layout_width="match_parent"
    android:layout_height="match_parent">
    <ImageView
        android:id="@+id/newXiangQing_imageview"
        android:layout_marginTop="10dp"
        android:layout_gravity="center_horizontal"
        android:layout_width="300dp"
        android:layout_height="300dp"
        android:src="@mipmap/ic_launcher"/>
    <TextView
        android:layout_gravity="center_horizontal"
        android:id="@+id/newXiangQing_title"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:textSize="20dp"
        android:text="XXXXXXXXXX"/>
    <TextView
        android:layout_gravity="center_horizontal"
        android:id="@+id/newXiangQing_price"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:textSize="20dp"
        android:text="XXXXXXXXXX"/>
    <RelativeLayout
        android:layout_alignParentBottom="true"
        android:layout_width="match_parent"
        android:layout_height="wrap_content">

    </RelativeLayout>

    <Button
        android:id="@+id/butn_addcar"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_alignLeft="@+id/newXiangQing_butn_car"
        android:text="添加购物车" />

    <Button
        android:id="@+id/butn_car"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:text="购物车" />

</LinearLayout>



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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值