android购物车界面代码,Android应用开发之MVP模式实现Android的简单购物车(代码教程)...

本文将带你了解Android应用开发MVP模式实现Android的简单购物车(代码教程),希望本文对大家学Android有所帮助。

retrofit+rxjava思想,并进行简单的封装.

效果图:

V层:调用P层方法

P层:连接V层和M层,并在V层关闭视图的时候实现解耦,调用M层方法获取数据返回给V层

M层:获取数据,供P层获取调用

RetrofitUtil工具类:

import java.util.concurrent.TimeUnit;

import okhttp3.OkHttpClient;

import okhttp3.logging.HttpLoggingInterceptor;

import retrofit2.Retrofit;

import retrofit2.adapter.rxjava2.RxJava2CallAdapterFactory;

import retrofit2.converter.gson.GsonConverterFactory;

public class RetrofitUtil {

private static RetrofitUtil instener;

private OkHttpClient okHttpClient;

private Retrofit retrofit;

private RetrofitUtil() {

HttpLoggingInterceptor logging = new HttpLoggingInterceptor();

logging.setLevel(HttpLoggingInterceptor.Level.BODY);

okHttpClient = new OkHttpClient.Builder()

.connectTimeout(5, TimeUnit.SECONDS)

.writeTimeout(5, TimeUnit.SECONDS)

.readTimeout(5, TimeUnit.SECONDS)

.addInterceptor(logging)

.build();

retrofit = new Retrofit.Builder()

.baseUrl(Api.BASEURL)

.addConverterFactory(GsonConverterFactory.create())

.addCallAdapterFactory(RxJava2CallAdapterFactory.create())

.client(okHttpClient)

.build();

}

public static synchronized RetrofitUtil getInstener() {

synchronized (RetrofitUtil.class) {

if (instener == null) {

instener = new RetrofitUtil();

}

}

return instener;

}

public ApiService getCreate() {

return retrofit.create(ApiService.class);

}

}

ApiService:

import com.bwei.jiangbikuan.day0629.model.bean.CatagoryBean;

import com.bwei.jiangbikuan.day0629.model.bean.GetCartsBean;

import com.bwei.jiangbikuan.day0629.model.bean.ProductCatagoryBean;

import io.reactivex.Observable;

import retrofit2.http.Field;

import retrofit2.http.FormUrlEncoded;

import retrofit2.http.GET;

import retrofit2.http.POST;

public interface ApiService {

@GET("product/getCatagory")

Observable getCatagory();

@FormUrlEncoded

@POST("product/getProductCatagory")

Observable getProductCatagory(@Field("cid") String cid);

@FormUrlEncoded

@POST("product/getCarts")

Observable getCarts(@Field("uid") String uid);

}

分类页面:

V层:

mainactivity:

public class MainActivity extends AppCompatActivity implements View.OnClickListener {

private FrameLayout myfl;

private RadioGroup rg;

private RadioButton rbClass;

private RadioButton rbShop;

private FragmentManager fragmentManager;

private ClassFragment classFragment;

private ShopFragment shopFragment;

private int classFragmentcommit;

private int shopFragmentcommit;

@Override

protected void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.activity_main);

//初始化控件

initView();

//获得fragment管理者

fragmentManager = getSupportFragmentManager();

//创建两个模块fragment对象

classFragment = new ClassFragment();

shopFragment = new ShopFragment();

//设置默认显示fragment

classFragmentcommit = fragmentManager.beginTransaction().replace(R.id.myfl, classFragment).commit();

}

private void initView() {

myfl = (FrameLayout) findViewById(R.id.myfl);

rg = (RadioGroup) findViewById(R.id.rg);

rbClass = (RadioButton) findViewById(R.id.rb_class);

rbShop = (RadioButton) findViewById(R.id.rb_shop);

rbShop.setOnClickListener(this);

rbClass.setOnClickListener(this);

}

@Override

public void onClick(View v) {

switch (v.getId()) {

default:

break;

case R.id.rb_class:

if (classFragmentcommit==0){

fragmentManager.beginTransaction().replace(R.id.myfl, classFragment).commit();

Toast.makeText(this, "分类创建", Toast.LENGTH_SHORT).show();

}else{

fragmentManager.beginTransaction().show(classFragment);

Toast.makeText(this, "分类显示", Toast.LENGTH_SHORT).show();

}

break;

case R.id.rb_shop:

if (shopFragmentcommit==0) {

shopFragmentcommit = fragmentManager.beginTransaction().replace(R.id.myfl, shopFragment).commit();

Toast.makeText(this, "购物车创建", Toast.LENGTH_SHORT).show();

}else{

fragmentManager.beginTransaction().show(shopFragment);

Toast.makeText(this, "购物车显示", Toast.LENGTH_SHORT).show();

}

break;

}

}

}

ClassFragment :

本文由职坐标整理并发布,希望对同学们有所帮助。了解更多详情请关注职坐标移动开发之Android频道!

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值