activity_main
<?xml version="1.0" encoding="utf-8"?><RelativeLayout
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"
tools:context=".MainActivity">
<RadioGroup
android:id="@+id/rg"
android:layout_alignParentBottom="true"
android:layout_width="match_parent"
android:orientation="horizontal"
android:layout_height="60dp">
<RadioButton
android:id="@+id/rbHomepage"
android:layout_weight="1"
android:layout_width="0dp"
android:background="@drawable/tab_homepage"
android:button="@null"
android:layout_height="match_parent"/>
<RadioButton
android:id="@+id/rbClass"
android:layout_weight="1"
android:layout_width="0dp"
android:background="@drawable/tab_class"
android:button="@null"
android:layout_height="match_parent"/>
<RadioButton
android:id="@+id/rbFind"
android:layout_weight="1"
android:layout_width="0dp"
android:background="@drawable/tab_find"
android:button="@null"
android:layout_height="match_parent"/>
<RadioButton
android:id="@+id/rbShopCar"
android:layout_weight="1"
android:layout_width="0dp"
android:background="@drawable/tab_shopcar"
android:button="@null"
android:layout_height="match_parent"/>
<RadioButton
android:id="@+id/rbMine"
android:layout_weight="1"
android:layout_width="0dp"
android:background="@drawable/tab_mine"
android:button="@null"
android:layout_height="match_parent"/>
</RadioGroup>
<FrameLayout
android:id="@+id/flContent"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_above="@id/rg"
/>
</RelativeLayout>
MainActivity
package com.example.john.jd_demo;
import android.graphics.Color;
import android.os.Build;
import android.os.Bundle;
import android.support.v4.app.FragmentManager;
import android.support.v7.app.AppCompatActivity;
import android.view.View;
import android.widget.FrameLayout;
import android.widget.RadioButton;
import android.widget.RadioGroup;
import com.example.john.jd_demo.classify.ClassFragment;
import com.example.john.jd_demo.find.FindFragment;
import com.example.john.jd_demo.home.HomePageFragment;
import com.example.john.jd_demo.mine.MineFragment;
import com.example.john.jd_demo.shopcart.ShopCartFragment;
import butterknife.BindView;
import butterknife.ButterKnife;
public class MainActivity extends AppCompatActivity {
@BindView(R.id.rbHomepage)
RadioButton rbHomepage;
@BindView(R.id.rbClass)
RadioButton rbClass;
@BindView(R.id.rbFind)
RadioButton rbFind;
@BindView(R.id.rbShopCar)
RadioButton rbShopCar;
@BindView(R.id.rbMine)
RadioButton rbMine;
@BindView(R.id.rg)
RadioGroup rg;
@BindView(R.id.flContent)
FrameLayout flContent;
private HomePageFragment homePageFragment;
private ClassFragment classFragment;
private FragmentManager fragmentManager;
private FindFragment findFragment;
private MineFragment mineFragment;
private ShopCartFragment shopCartFragment;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
ButterKnife.bind(this);
setListener();
homePageFragment = new HomePageFragment();
classFragment = new ClassFragment();
findFragment=new FindFragment();
mineFragment=new MineFragment();
shopCartFragment=new ShopCartFragment();
fragmentManager = getSupportFragmentManager();
fragmentManager.beginTransaction().replace(R.id.flContent, homePageFragment).commit();
hideActionBar();
}
private void hideActionBar() {
if (Build.VERSION.SDK_INT >= 21) {
View decorView = getWindow().getDecorView();
int option = View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN
| View.SYSTEM_UI_FLAG_LAYOUT_STABLE;
decorView.setSystemUiVisibility(option);
getWindow().setStatusBarColor(Color.TRANSPARENT);//透明色
}
getSupportActionBar().hide();
}
private void setListener() {
rg.setOnCheckedChangeListener(new RadioGroup.OnCheckedChangeListener() {
@Override
public void onCheckedChanged(RadioGroup group, int checkedId) {
switch (checkedId) {
case R.id.rbHomepage:
//首页
fragmentManager.beginTransaction().replace(R.id.flContent, homePageFragment).commit();
break;
case R.id.rbClass:
fragmentManager.beginTransaction().replace(R.id.flContent, classFragment).commit();
break;
case R.id.rbFind:
fragmentManager.beginTransaction().replace(R.id.flContent, findFragment).commit();
break;
case R.id.rbShopCar:
fragmentManager.beginTransaction().replace(R.id.flContent, shopCartFragment).commit();
break;
case R.id.rbMine:
fragmentManager.beginTransaction().replace(R.id.flContent, mineFragment).commit();
break;
}
}
});
}
@Override
protected void onDestroy() {
super.onDestroy();
}
}
HomePageFragment
package com.example.jd_test.fragment; import android.content.Intent; import android.os.Bundle; import android.support.annotation.NonNull; import android.support.annotation.Nullable; import android.support.v4.app.Fragment; 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 android.widget.Toast; import com.dash.zxinglibrary.activity.CaptureActivity; import com.dash.zxinglibrary.activity.CodeUtils; import com.example.jd_test.GlideImageLoader; import com.example.jd_test.R; import com.example.jd_test.activity.WebViewActivity; import com.example.jd_test.adapter.RvClassAdapter; import com.example.jd_test.adapter.RvRecommendAdapter; import com.example.jd_test.adapter.RvSeckillAdapter; import com.example.jd_test.bean.AdBean; import com.example.jd_test.bean.CatagoryBean; import com.example.jd_test.presenter.imp.AdPresenterImp; import com.example.jd_test.presenter.imp.CatagoryPresenterImp; import com.example.jd_test.view.AdView; import com.example.jd_test.view.CatagoryView; import com.example.jd_test.view.OnItemClickListener; import com.sunfusheng.marqueeview.MarqueeView; import com.youth.banner.Banner; import java.util.ArrayList; import java.util.List; /** * Created by john on 2018/5/2. */ public class HomePageFragment extends Fragment implements AdView, CatagoryView { private Banner banner; private AdPresenterImp adPresenterImp; private CatagoryPresenterImp catagoryPresenterImp; private RecyclerView rvClass; private MarqueeView marqueeView; private RecyclerView rvSecKill; private RecyclerView rvRecommend; private ImageView ivZxing; @Nullable @Override public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) { adPresenterImp = new AdPresenterImp(this); catagoryPresenterImp = new CatagoryPresenterImp(this); adPresenterImp.getAd(); catagoryPresenterImp.getCatagory(); View view = inflater.inflate(R.layout.fragment_home, null); initView(view); setListener(); return view; } private void setListener() { ivZxing.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { Intent intent = new Intent(getContext(), CaptureActivity.class); startActivityForResult(intent, 1); } }); } @Override public void onActivityResult(int requestCode, int resultCode, Intent data) { if (requestCode == 1 && data != null) { Bundle bundle = data.getExtras(); if(bundle.getInt(CodeUtils.RESULT_TYPE)==CodeUtils.RESULT_SUCCESS){ String string = bundle.getString(CodeUtils.RESULT_STRING); //Intent intent = new Intent(getContext(),WebViewActivity.class); } } } private void initView(View view) { marqueeView = view.findViewById(R.id.marqueeView); initMarqueeView(); banner = (Banner) view.findViewById(R.id.banner); rvClass = view.findViewById(R.id.rvClass); GridLayoutManager gridLayoutManager = new GridLayoutManager(getContext(), 2, RecyclerView.HORIZONTAL, false); rvClass.setLayoutManager(gridLayoutManager); rvSecKill = view.findViewById(R.id.rvSecKill); GridLayoutManager gridLayoutManager1 = new GridLayoutManager(getContext(), 1, RecyclerView.HORIZONTAL, false); rvSecKill.setLayoutManager(gridLayoutManager1); rvRecommend = view.findViewById(R.id.rvRecommend); GridLayoutManager gridLayoutManager2 = new GridLayoutManager(getContext(), 2, RecyclerView.VERTICAL, false); rvRecommend.setLayoutManager(gridLayoutManager2); banner.setImageLoader(new GlideImageLoader()); ivZxing = view.findViewById(R.id.ivZxing); } @Override public void onStop() { super.onStop(); banner.stopAutoPlay(); } private void initMarqueeView() { List<String> info = new ArrayList<>(); info.add("1111111111111"); info.add("22222222222222"); info.add("3333333333333"); info.add("4444444444444444"); info.add("555555555555555555"); marqueeView.startWithList(info); } @Override public void onDestroy() { super.onDestroy(); adPresenterImp.detach(); } @Override public void show(AdBean adBean) { List<AdBean.DataBean> data = adBean.getData(); List<String> list = new ArrayList<>(); for (int i = 0; i < data.size(); i++) { list.add(data.get(i).getIcon()); } banner.setImages(list); banner.start(); showSeckill(adBean); showRecommend(adBean); } private void showRecommend(AdBean adBean) { List<AdBean.TuijianBean.ListBean> list = adBean.getTuijian().getList(); RvRecommendAdapter rvRecommendAdapter = new RvRecommendAdapter(getContext(), list); rvRecommend.setAdapter(rvRecommendAdapter); } private void showSeckill(AdBean adBean) { final AdBean.MiaoshaBean miaosha = adBean.getMiaosha(); RvSeckillAdapter killAdapter = new RvSeckillAdapter(getContext(), miaosha.getList()); rvSecKill.setAdapter(killAdapter); killAdapter.setOnItemClickListener(new OnItemClickListener() { @Override public void onItemClick(int position) { String detailUrl = miaosha.getList().get(position).getDetailUrl(); Intent intent = new Intent(getContext(), WebViewActivity.class); intent.putExtra("detailUrl", detailUrl); startActivity(intent); } @Override public void onLongItemClick(int position) { } }); } @Override public void showError(Exception e) { } @Override public void showData(final List<CatagoryBean.DataBean> data) { RvClassAdapter adapter = new RvClassAdapter(getContext(), data); rvClass.setAdapter(adapter); adapter.setOnItemClickListener(new OnItemClickListener() { @Override public void onItemClick(int position) { Toast.makeText(getContext(), data.get(position).getName(), Toast.LENGTH_SHORT).show(); } @Override public void onLongItemClick(int position) { } }); }
}
---------------------------------------------------------------------------------------------------------
AdModel
package com.example.jd_test.model; import com.example.jd_test.net.OnNetListener; /** * Created by john on 2018/5/1. */ public interface AdModel { void getAd(OnNetListener onNetListener);
}
---------------------------------------------------------------------------------------------------------
CatagoryModel
package com.example.jd_test.model; import com.example.jd_test.net.OnNetListener; /** * Created by john on 2018/5/1. */ public interface CatagoryModel { void getCatagory(OnNetListener onNetListener); }
---------------------------------------------------------------------------------------------------------
AdModelImp
package com.example.jd_test.model.imp; import com.example.jd_test.bean.AdBean; import com.example.jd_test.model.AdModel; import com.example.jd_test.net.API; import com.example.jd_test.net.OkHttpWorkUtil; import com.example.jd_test.net.OnNetListener; import com.google.gson.Gson; /** * Created by john on 2018/5/1. */ public class AdModelImp implements AdModel{ @Override public void getAd(final OnNetListener onNetListener) { OkHttpWorkUtil.getInstance().doGet(API.AD_URL, new OnNetListener() { @Override public void onSuccess(String result) { AdBean adBean = new Gson().fromJson(result, AdBean.class); if ("0".equals(adBean.getCode())){ onNetListener.onSuccess(result); } } @Override public void onFailed(Exception e) { onNetListener.onFailed(e); } }); } }
---------------------------------------------------------------------------------------------------------
CatagoryModelImp
package com.example.jd_test.model.imp; import com.example.jd_test.bean.CatagoryBean; import com.example.jd_test.model.CatagoryModel; import com.example.jd_test.net.API; import com.example.jd_test.net.OkHttpWorkUtil; import com.example.jd_test.net.OnNetListener; import com.google.gson.Gson; /** * Created by john on 2018/5/1. */ public class CatagoryModelImp implements CatagoryModel{ @Override public void getCatagory(final OnNetListener onNetListener) { OkHttpWorkUtil.getInstance().doGet(API.CATAGORY_URL, new OnNetListener() { @Override public void onSuccess(String result) { CatagoryBean catagoryBean = new Gson().fromJson(result, CatagoryBean.class); if ("0".equals(catagoryBean.getCode())){ onNetListener.onSuccess(result); } } @Override public void onFailed(Exception e) { onNetListener.onFailed(e); } }); } }
---------------------------------------------------------------------------------------------------------
AdView
package com.example.jd_test.view; import com.example.jd_test.bean.AdBean; /** * Created by john on 2018/5/1. */ public interface AdView { void show(AdBean adBean); void showError(Exception e); }
---------------------------------------------------------------------------------------------------------
CatagoryView
package com.example.jd_test.view; import com.example.jd_test.bean.CatagoryBean; import java.util.List; /** * Created by john on 2018/5/1. */ public interface CatagoryView { void showData(List<CatagoryBean.DataBean> data); }
---------------------------------------------------------------------------------------------------------
OnItemClickListener
package com.example.jd_test.view; /** * Created by john on 2018/5/1. */ public interface OnItemClickListener { void onItemClick(int position); void onLongItemClick(int position); }
---------------------------------------------------------------------------------------------------------
AdPresenter
package com.example.jd_test.presenter; /** * Created by john on 2018/5/1. */ public interface AdPresenter { void getAd(); }
---------------------------------------------------------------------------------------------------------
CatagoryPresenter
package com.example.jd_test.presenter; /** * Created by john on 2018/5/1. */ public interface CatagoryPresenter { void getCatagory(); }
---------------------------------------------------------------------------------------------------------
AddPresenterImp
package com.example.jd_test.presenter.imp; import com.example.jd_test.bean.AdBean; import com.example.jd_test.model.imp.AdModelImp; import com.example.jd_test.net.OnNetListener; import com.example.jd_test.presenter.AdPresenter; import com.example.jd_test.view.AdView; import com.google.gson.Gson; public class AdPresenterImp implements AdPresenter { private final AdModelImp adModelImp; private AdView adView; public AdPresenterImp(AdView adView) { this.adView = adView; adModelImp = new AdModelImp(); } @Override public void getAd() { adModelImp.getAd(new OnNetListener() { @Override public void onSuccess(String result) { AdBean adBean = new Gson().fromJson(result, AdBean.class); if (adView != null) { adView.show(adBean); } } @Override public void onFailed(Exception e) { if (adView != null) { adView.showError(e); } } }); } public void detach() { if (adView != null) { adView = null; } }
}
-----------------------------------------------------------------------------------------------------------
CatagoryPresenterImp
package com.example.jd_test.presenter.imp; import com.example.jd_test.bean.CatagoryBean; import com.example.jd_test.model.imp.CatagoryModelImp; import com.example.jd_test.net.OnNetListener; import com.example.jd_test.presenter.CatagoryPresenter; import com.example.jd_test.view.CatagoryView; import com.google.gson.Gson; /** * Created by john on 2018/5/1. */ public class CatagoryPresenterImp implements CatagoryPresenter{ private final CatagoryModelImp catagoryModelImp; private CatagoryView catagoryView; public CatagoryPresenterImp(CatagoryView catagoryView) { this.catagoryView = catagoryView; catagoryModelImp = new CatagoryModelImp(); } @Override public void getCatagory() { catagoryModelImp.getCatagory(new OnNetListener() { @Override public void onSuccess(String result) { if (catagoryView != null) { CatagoryBean catagoryBean = new Gson().fromJson(result, CatagoryBean.class); catagoryView.showData(catagoryBean.getData()); } } @Override public void onFailed(Exception e) { if (catagoryView != null) { } } }); } public void detach() { if (catagoryView != null) { catagoryView = null; } } }
--------------------------------------------------------------------------------------------
ReSecKillAdapter
package com.example.jd_test.adapter; import android.content.Context; import android.support.annotation.NonNull; 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.example.jd_test.R; import com.example.jd_test.bean.AdBean; import com.example.jd_test.view.OnItemClickListener; import java.util.List; /** * Created by john on 2018/5/2. */ public class RvSeckillAdapter extends RecyclerView.Adapter<RecyclerView.ViewHolder> { private Context context; private List<AdBean.MiaoshaBean.ListBeanX> list; private LayoutInflater inflater; private OnItemClickListener onItemClickListener; public RvSeckillAdapter(Context context,List<AdBean.MiaoshaBean.ListBeanX> list) { this.context = context; this.list = list; inflater = LayoutInflater.from(context); } public void setOnItemClickListener(OnItemClickListener onItemClickListener){ this.onItemClickListener = onItemClickListener; } @NonNull @Override public RecyclerView.ViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) { View view = inflater.inflate(R.layout.rvseckill_item, parent, false); SecKillViewHolder secKillViewHolder = new SecKillViewHolder(view); return secKillViewHolder; } @Override public void onBindViewHolder(@NonNull RecyclerView.ViewHolder holder, final int position) { SecKillViewHolder secKillViewHolder = (SecKillViewHolder) holder; AdBean.MiaoshaBean.ListBeanX listBeanX = list.get(position); String url = listBeanX.getImages().split("\\|")[0]; Glide.with(context).load(url).into(secKillViewHolder.iv); secKillViewHolder.iv.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { if (onItemClickListener!=null){ onItemClickListener.onItemClick(position); } } }); } @Override public int getItemCount() { return list.size(); } class SecKillViewHolder extends RecyclerView.ViewHolder{ private final ImageView iv; public SecKillViewHolder(View itemView) { super(itemView); iv = itemView.findViewById(R.id.iv); } } }
------------------------------------------------------------------------------------------
RvClassAdapter
package com.example.jd_test.adapter; import android.content.Context; import android.support.annotation.NonNull; import android.support.v7.widget.RecyclerView; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; import android.widget.ImageView; import android.widget.LinearLayout; import android.widget.TextView; import com.bumptech.glide.Glide; import com.example.jd_test.R; import com.example.jd_test.bean.CatagoryBean; import com.example.jd_test.view.OnItemClickListener; import java.util.List; /** * Created by john on 2018/5/2. */ public class RvClassAdapter extends RecyclerView.Adapter<RecyclerView.ViewHolder> { private Context context; private List<CatagoryBean.DataBean> list; private LayoutInflater inflater; private OnItemClickListener onItemClickListener; public RvClassAdapter(Context context, List<CatagoryBean.DataBean> list) { this.context = context; this.list = list; inflater = LayoutInflater.from(context); } public void setOnItemClickListener(OnItemClickListener onItemClickListener) { this.onItemClickListener = onItemClickListener; } @NonNull @Override public RecyclerView.ViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) { View view = inflater.inflate(R.layout.rvclass_item, parent, false); ClassViewHoler classViewHoler = new ClassViewHoler(view); return classViewHoler; } @Override public void onBindViewHolder(@NonNull RecyclerView.ViewHolder holder, final int position) { ClassViewHoler classViewHoler = (ClassViewHoler) holder; CatagoryBean.DataBean dataBean = list.get(position); Glide.with(context).load(dataBean.getIcon()).into(classViewHoler.iv); classViewHoler.tv.setText(dataBean.getName()); classViewHoler.ll.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { if (onItemClickListener != null) { onItemClickListener.onItemClick(position); } } }); } @Override public int getItemCount() { return list.size(); } class ClassViewHoler extends RecyclerView.ViewHolder { private final ImageView iv; private final TextView tv; private final LinearLayout ll; public ClassViewHoler(View itemView) { super(itemView); iv = itemView.findViewById(R.id.iv); tv = itemView.findViewById(R.id.tv); ll = itemView.findViewById(R.id.ll); } } }
---------------------------------------------------------------------------------------------------------------------------
ReCommendAdapter
package com.example.jd_test.adapter; import android.content.Context; import android.support.annotation.NonNull; import android.support.v7.widget.RecyclerView; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; import android.widget.ImageView; import android.widget.TextView; import com.bumptech.glide.Glide; import com.example.jd_test.R; import com.example.jd_test.bean.AdBean; import com.example.jd_test.view.OnItemClickListener; import java.util.List; /** * Created by john on 2018/5/2. */ public class RvRecommendAdapter extends RecyclerView.Adapter<RecyclerView.ViewHolder> { private Context context; private List<AdBean.TuijianBean.ListBean> list; private LayoutInflater inflater; private OnItemClickListener onItemClickListener; public RvRecommendAdapter(Context context, List<AdBean.TuijianBean.ListBean> list) { this.context = context; this.list = list; inflater = LayoutInflater.from(context); } @NonNull @Override public RecyclerView.ViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) { View view = inflater.inflate(R.layout.rvrecommend_item, parent, false); RecommendViewHolder recommendViewHolder = new RecommendViewHolder(view); return recommendViewHolder; } @Override public void onBindViewHolder(@NonNull RecyclerView.ViewHolder holder, int position) { RecommendViewHolder recommendViewHolder = (RecommendViewHolder) holder; AdBean.TuijianBean.ListBean listBean = list.get(position); String images = listBean.getImages(); String[] split = images.split("\\|"); String url = split.length == 0 ? images : split[0]; Glide.with(context).load(url).into(recommendViewHolder.iv); recommendViewHolder.tv.setText(listBean.getTitle()); } @Override public int getItemCount() { return list.size(); } class RecommendViewHolder extends RecyclerView.ViewHolder { private final ImageView iv; private final TextView tv; public RecommendViewHolder(View itemView) { super(itemView); iv = itemView.findViewById(R.id.iv); tv = itemView.findViewById(R.id.tv); } } }
--------------------------------------------------------------------------------------------------------------------------
WebViewActivity
package com.example.jd_test.activity; import android.content.Intent; import android.os.Bundle; import android.support.v7.app.AppCompatActivity; import android.webkit.WebSettings; import android.webkit.WebView; import com.example.jd_test.R; public class WebViewActivity extends AppCompatActivity { private WebView mWv; private String detailUrl; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_web_view); Intent intent = getIntent(); detailUrl = intent.getStringExtra("detailUrl"); initView(); mWv.loadUrl(detailUrl); } private void initView() { mWv = (WebView) findViewById(R.id.wv); WebSettings settings = mWv.getSettings(); settings.setJavaScriptEnabled(true); } }
CaptureActivity
package com.dash.zxinglibrary.activity; import android.content.Intent; import android.graphics.Bitmap; import android.os.Bundle; import android.support.v7.app.AppCompatActivity; import android.util.Log; import com.dash.zxinglibrary.R; /** * created by Dash * 默认的二维码扫描Activity */ public class CaptureActivity extends AppCompatActivity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.camera); CaptureFragment captureFragment = new CaptureFragment(); captureFragment.setAnalyzeCallback(analyzeCallback); getSupportFragmentManager().beginTransaction().replace(R.id.fl_zxing_container, captureFragment).commit(); captureFragment.setCameraInitCallBack(new CaptureFragment.CameraInitCallBack() { @Override public void callBack(Exception e) { if (e == null) { } else { Log.e("TAG", "callBack: ", e); } } }); } /** * 二维码解析回调函数 */ CodeUtils.AnalyzeCallback analyzeCallback = new CodeUtils.AnalyzeCallback() { @Override public void onAnalyzeSuccess(Bitmap mBitmap, String result) { Intent resultIntent = new Intent(); Bundle bundle = new Bundle(); bundle.putInt(CodeUtils.RESULT_TYPE, CodeUtils.RESULT_SUCCESS); bundle.putString(CodeUtils.RESULT_STRING, result); resultIntent.putExtras(bundle); CaptureActivity.this.setResult(RESULT_OK, resultIntent); CaptureActivity.this.finish(); } @Override public void onAnalyzeFailed() { Intent resultIntent = new Intent(); Bundle bundle = new Bundle(); bundle.putInt(CodeUtils.RESULT_TYPE, CodeUtils.RESULT_FAILED); bundle.putString(CodeUtils.RESULT_STRING, ""); resultIntent.putExtras(bundle); CaptureActivity.this.setResult(RESULT_OK, resultIntent); CaptureActivity.this.finish(); } }; }
camera.xml
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent"> <FrameLayout android:id="@+id/fl_zxing_container" android:layout_width="match_parent" android:layout_height="match_parent" /> </RelativeLayout>
activity_web_view.xml
<?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" tools:context=".activity.WebViewActivity"> <WebView android:id="@+id/wv" android:layout_width="match_parent" android:layout_height="match_parent"></WebView>
</LinearLayout>
fragment_home.xml
<?xml version="1.0" encoding="utf-8"?> <ScrollView xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical"> <LinearLayout android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical"> <LinearLayout android:layout_width="match_parent" android:layout_height="50dp" android:background="#ff36f5" android:gravity="center_vertical" android:orientation="horizontal"> <ImageView android:id="@+id/ivZxing" android:layout_width="30dp" android:layout_height="30dp" android:layout_marginLeft="15dp" android:background="@mipmap/a_s"/> <LinearLayout android:layout_width="match_parent" android:layout_height="30dp" android:layout_marginLeft="15dp" android:layout_marginRight="15dp" android:layout_weight="1" android:background="@drawable/shape_search"></LinearLayout> <ImageView android:layout_width="30dp" android:layout_height="30dp" android:layout_alignParentRight="true" android:layout_marginRight="15dp" android:background="@mipmap/my_msg_bai"/> </LinearLayout> <com.youth.banner.Banner android:id="@+id/banner" android:layout_width="match_parent" android:layout_height="200dp"/> <android.support.v7.widget.RecyclerView android:id="@+id/rvClass" android:layout_width="match_parent" android:layout_height="wrap_content"> </android.support.v7.widget.RecyclerView> <RelativeLayout android:layout_width="match_parent" android:layout_height="30dp" android:layout_margin="15dp" android:background="@drawable/shape_search" > <TextView android:id="@+id/tvJD" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_centerVertical="true" android:layout_marginLeft="10dp" android:text="京东快报"/> <LinearLayout android:id="@+id/llMore" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignParentRight="true" android:layout_centerVertical="true" android:layout_marginRight="10dp" android:orientation="horizontal"> <View android:layout_width="1dp" android:layout_height="match_parent" android:background="#000000"></View> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginLeft="5dp" android:text="更多"/> </LinearLayout> <com.sunfusheng.marqueeview.MarqueeView android:id="@+id/marqueeView" android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_centerVertical="true" android:layout_marginLeft="15dp" android:layout_toLeftOf="@id/llMore" android:layout_toRightOf="@id/tvJD" app:mvAnimDuration="1000" app:mvDirection="bottom_to_top" app:mvInterval="3000" app:mvSingleLine="true" app:mvTextColor="#000000" app:mvTextSize="14sp"/> </RelativeLayout> <android.support.v7.widget.RecyclerView android:id="@+id/rvSecKill" android:layout_width="match_parent" android:layout_height="wrap_content"> </android.support.v7.widget.RecyclerView> <TextView android:layout_width="match_parent" android:layout_height="40dp" android:background="#33000000" android:gravity="center" android:text="为您推荐"/> <android.support.v7.widget.RecyclerView android:id="@+id/rvRecommend" android:layout_width="match_parent" android:layout_height="wrap_content"> </android.support.v7.widget.RecyclerView> </LinearLayout> </ScrollView>
reseckill_item.xml
<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="wrap_content" android:padding="10dp" android:layout_height="wrap_content"> <ImageView android:id="@+id/iv" android:layout_width="90dp" android:layout_height="90dp"/>
</LinearLayout>
rvclass_item
<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:id="@+id/ll" android:layout_width="wrap_content" android:layout_height="wrap_content" android:padding="10dp" android:gravity="center" android:orientation="vertical"> <ImageView android:id="@+id/iv" android:layout_width="50dp" android:layout_height="50dp"/> <TextView android:id="@+id/tv" android:layout_width="wrap_content" android:layout_height="wrap_content"/> </LinearLayout>
rvrecommend_item.xml
<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:id="@+id/ll" android:layout_width="wrap_content" android:layout_height="wrap_content" android:gravity="center" android:orientation="vertical" android:padding="10dp"> <ImageView android:id="@+id/iv" android:layout_width="200dp" android:layout_height="200dp"/> <TextView android:id="@+id/tv" android:layout_width="wrap_content" android:layout_height="wrap_content"/> </LinearLayout>
AdBean
package com.example.jd_test.bean; import java.util.List; public class AdBean { private String msg; private String code; private TuijianBean tuijian; private MiaoshaBean miaosha; private List<DataBean> data; public String getMsg() { return msg; } public void setMsg(String msg) { this.msg = msg; } public String getCode() { return code; } public void setCode(String code) { this.code = code; } public TuijianBean getTuijian() { return tuijian; } public void setTuijian(TuijianBean tuijian) { this.tuijian = tuijian; } public MiaoshaBean getMiaosha() { return miaosha; } public void setMiaosha(MiaoshaBean miaosha) { this.miaosha = miaosha; } public List<DataBean> getData() { return data; } public void setData(List<DataBean> data) { this.data = data; } public static class TuijianBean { private String name; private List<ListBean> list; public String getName() { return name; } public void setName(String name) { this.name = name; } public List<ListBean> getList() { return list; } public void setList(List<ListBean> list) { this.list = list; } public static class ListBean { private double bargainPrice; private String createtime; private String detailUrl; private String images; private int itemtype; private int pid; private double price; private int pscid; private int salenum; private int sellerid; private String subhead; private String title; public double getBargainPrice() { return bargainPrice; } public void setBargainPrice(double bargainPrice) { this.bargainPrice = bargainPrice; } public String getCreatetime() { return createtime; } public void setCreatetime(String createtime) { this.createtime = createtime; } public String getDetailUrl() { return detailUrl; } public void setDetailUrl(String detailUrl) { this.detailUrl = detailUrl; } public String getImages() { return images; } public void setImages(String images) { this.images = images; } public int getItemtype() { return itemtype; } public void setItemtype(int itemtype) { this.itemtype = itemtype; } public int getPid() { return pid; } public void setPid(int pid) { this.pid = pid; } public double getPrice() { return price; } public void setPrice(double price) { this.price = price; } public int getPscid() { return pscid; } public void setPscid(int pscid) { this.pscid = pscid; } public int getSalenum() { return salenum; } public void setSalenum(int salenum) { this.salenum = salenum; } public int getSellerid() { return sellerid; } public void setSellerid(int sellerid) { this.sellerid = sellerid; } public String getSubhead() { return subhead; } public void setSubhead(String subhead) { this.subhead = subhead; } public String getTitle() { return title; } public void setTitle(String title) { this.title = title; } } } public static class MiaoshaBean { private String name; private int time; private List<ListBeanX> list; public String getName() { return name; } public void setName(String name) { this.name = name; } public int getTime() { return time; } public void setTime(int time) { this.time = time; } public List<ListBeanX> getList() { return list; } public void setList(List<ListBeanX> list) { this.list = list; } public static class ListBeanX { /** * bargainPrice : 99.0 * createtime : 2017-10-14T21:38:26 * detailUrl : https://item.m.jd.com/product/4345173.html?utm#_source=androidapp&utm#_medium=appshare&utm#_campaign=t#_335139774&utm#_term=QQfriends * images : https://m.360buyimg.com/n0/jfs/t6037/35/2944615848/95178/6cd6cff0/594a3a10Na4ec7f39.jpg!q70.jpg|https://m.360buyimg.com/n0/jfs/t6607/258/1025744923/75738/da120a2d/594a3a12Ne3e6bc56.jpg!q70.jpg|https://m.360buyimg.com/n0/jfs/t6370/292/1057025420/64655/f87644e3/594a3a12N5b900606.jpg!q70.jpg * itemtype : 1 * pid : 45 * price : 2999.0 * pscid : 39 * salenum : 4666 * sellerid : 1 * subhead : 高清双摄,就是清晰!2000+1600万高清摄像头,6GB大内存+高通骁龙835处理器,性能怪兽! * title : 一加手机5 (A5000) 6GB+64GB 月岩灰 全网通 双卡双待 移动联通电信4G手机 */ private double bargainPrice; private String createtime; private String detailUrl; private String images; private int itemtype; private int pid; private double price; private int pscid; private int salenum; private int sellerid; private String subhead; private String title; public double getBargainPrice() { return bargainPrice; } public void setBargainPrice(double bargainPrice) { this.bargainPrice = bargainPrice; } public String getCreatetime() { return createtime; } public void setCreatetime(String createtime) { this.createtime = createtime; } public String getDetailUrl() { return detailUrl; } public void setDetailUrl(String detailUrl) { this.detailUrl = detailUrl; } public String getImages() { return images; } public void setImages(String images) { this.images = images; } public int getItemtype() { return itemtype; } public void setItemtype(int itemtype) { this.itemtype = itemtype; } public int getPid() { return pid; } public void setPid(int pid) { this.pid = pid; } public double getPrice() { return price; } public void setPrice(double price) { this.price = price; } public int getPscid() { return pscid; } public void setPscid(int pscid) { this.pscid = pscid; } public int getSalenum() { return salenum; } public void setSalenum(int salenum) { this.salenum = salenum; } public int getSellerid() { return sellerid; } public void setSellerid(int sellerid) { this.sellerid = sellerid; } public String getSubhead() { return subhead; } public void setSubhead(String subhead) { this.subhead = subhead; } public String getTitle() { return title; } public void setTitle(String title) { this.title = title; } } } public static class DataBean { /** * aid : 1 * createtime : 2017-12-26T21:49:44 * icon : https://www.zhaoapi.cn/images/quarter/ad1.png * productId : null * title : 第十三界瑞丽模特大赛 * type : 0 * url : http://m.mv14449315.icoc.bz/index.jsp */ private int aid; private String createtime; private String icon; private Object productId; private String title; private int type; private String url; public int getAid() { return aid; } public void setAid(int aid) { this.aid = aid; } public String getCreatetime() { return createtime; } public void setCreatetime(String createtime) { this.createtime = createtime; } public String getIcon() { return icon; } public void setIcon(String icon) { this.icon = icon; } public Object getProductId() { return productId; } public void setProductId(Object productId) { this.productId = productId; } public String getTitle() { return title; } public void setTitle(String title) { this.title = title; } public int getType() { return type; } public void setType(int type) { this.type = type; } public String getUrl() { return url; } public void setUrl(String url) { this.url = url; } } }
CatogoryBean
package com.example.jd_test.bean; import java.util.List; public class CatagoryBean { private String msg; private String code; private List<DataBean> data; public String getMsg() { return msg; } public void setMsg(String msg) { this.msg = msg; } public String getCode() { return code; } public void setCode(String code) { this.code = code; } public List<DataBean> getData() { return data; } public void setData(List<DataBean> data) { this.data = data; } public static class DataBean { private int cid; private String createtime; private String icon; private int ishome; private String name; private boolean checked;//表示是否选中 public boolean getChecked() { return checked; } public void setChecked(boolean checked) { this.checked = checked; } public int getCid() { return cid; } public void setCid(int cid) { this.cid = cid; } public String getCreatetime() { return createtime; } public void setCreatetime(String createtime) { this.createtime = createtime; } public String getIcon() { return icon; } public void setIcon(String icon) { this.icon = icon; } public int getIshome() { return ishome; } public void setIshome(int ishome) { this.ishome = ishome; } public String getName() { return name; } public void setName(String name) { this.name = name; } } }
Api
package com.example.jd_test.net; /** * Created by john on 2018/5/1. */ public interface API { String LOGIN_URL = "https://www.zhaoapi.cn/user/login"; String AD_URL = "https://www.zhaoapi.cn/ad/getAd"; String CATAGORY_URL = "https://www.zhaoapi.cn/product/getCatagory"; String PRODUCTCATAGORY_URL = "https://www.zhaoapi.cn/product/getProductCatagory"; String PRODUCTS_URL = "https://www.zhaoapi.cn/product/getProducts"; String ADDCART_RUL = "https://www.zhaoapi.cn/product/addCart"; String CARTS_URL = "https://www.zhaoapi.cn/product/getCarts"; String UPDATECARTS_URL = "https://www.zhaoapi.cn/product/updateCarts"; String DELETECART_URL = "https://www.zhaoapi.cn/product/deleteCart"; }