亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 系統 > Android > 正文

Android購物分類效果實現

2019-10-21 21:35:30
字體:
來源:轉載
供稿:網友

本文實例為大家分享了Android購物分類效果展示的具體代碼,供大家參考,具體內容如下

SecondActivity.java

public class SecondActivity extends AppCompatActivity{  private ViewPager mPager;  private RadioGroup mRadioGroup;  @Override  protected void onCreate(@Nullable Bundle savedInstanceState) {    super.onCreate(savedInstanceState);    setContentView(R.layout.second);     mPager = findViewById(R.id.pager);     mRadioGroup = findViewById(R.id.group);     mPager.setAdapter(new FragmentPagerAdapter(getSupportFragmentManager()) {       @Override       public Fragment getItem(int position) {         Fragment fragment=null;         switch (position){           case 0:             fragment = new Afrag();             break;           case 1:             fragment = new Bfrag();             break;           case 2:             fragment = new Cfrag();             break;         }         return fragment;       }       @Override       public int getCount() {         return 3;       }     });     mRadioGroup.setOnCheckedChangeListener(new RadioGroup.OnCheckedChangeListener() {       @Override       public void onCheckedChanged(RadioGroup radioGroup, int i) {         switch (i){           case R.id.r1:             mPager.setCurrentItem(0);             break;           case R.id.r2:             mPager.setCurrentItem(1);             break;           case R.id.r3:             mPager.setCurrentItem(2);             break;         }       }     });  }}

secondActivity.xml

 

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"  android:layout_width="match_parent"  android:layout_height="match_parent"  android:orientation="vertical">  <android.support.v4.view.ViewPager    android:id="@+id/pager"    android:layout_width="match_parent"    android:layout_height="0dp"    android:layout_weight="13"/>  <RadioGroup    android:id="@+id/group"    android:layout_width="match_parent"    android:layout_height="wrap_content"    android:layout_weight="1"    android:orientation="horizontal">    <RadioButton      android:id="@+id/r1"      android:layout_width="wrap_content"      android:layout_weight="1"      android:layout_height="match_parent"      android:button="@null"      android:gravity="center"      android:text="首頁"/>    <RadioButton      android:id="@+id/r2"      android:layout_width="wrap_content"      android:layout_weight="1"      android:layout_height="match_parent"      android:button="@null"      android:gravity="center"      android:text="分類"/>    <RadioButton      android:id="@+id/r3"      android:layout_width="wrap_content"      android:layout_weight="1"      android:layout_height="match_parent"      android:button="@null"      android:gravity="center"      android:text="購物車"/>  </RadioGroup></LinearLayout>

Afrag.java

public class Afrag extends Fragment{  private RecyclerView mRecyclerView;  public String urlString="http://www.wanandroid.com/tools/mockapi/6523/restaurants_offset_0_limit_4 ";  @Nullable  @Override  public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {    View view = View.inflate(getActivity(), R.layout.afrag, null);    mRecyclerView = view.findViewById(R.id.rv);    initData();    return view;  }  private void initData() {    OkHttps okHttps = OkHttps.getInstance();    okHttps.doGet(urlString, new OkHttps.OkCallback() {      @Override      public void onResponse(String json) { //瀑布流        PubuBean pubuBean = new Gson().fromJson(json,PubuBean.class);        List<PubuBean.DataBean> results = pubuBean.getData();        PubuAdapter pubuAdapter = new PubuAdapter(getActivity());        pubuAdapter.setDatas(results);        mRecyclerView.setAdapter(pubuAdapter);        StaggeredGridLayoutManager manager = new StaggeredGridLayoutManager(2, StaggeredGridLayoutManager.VERTICAL);        mRecyclerView.setLayoutManager(manager);      }      @Override      public void onFailure(Exception e) {      }    });  }}

afrag.xml

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"  android:layout_width="match_parent"  android:layout_height="match_parent">  <android.support.v7.widget.RecyclerView    android:id="@+id/rv"    android:layout_width="match_parent"    android:layout_height="match_parent"/></LinearLayout>

PubuAdapter.java

public class PubuAdapter extends RecyclerView.Adapter<PubuAdapter.ViewHolder>{  private Context mContext;  ArrayList<PubuBean.DataBean> list;  public PubuAdapter(Context context) {    mContext = context;    list = new ArrayList<>();  }  public void setDatas(List<PubuBean.DataBean> datas) {    list.addAll(datas);  }  @NonNull  @Override  public ViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {    View view = View.inflate(mContext, R.layout.pbitem, null);    ViewHolder holder = new ViewHolder(view);    return holder;  }  @Override  public void onBindViewHolder(@NonNull ViewHolder holder, int position) {    holder.mTextView.setText(list.get(position).getName());    Glide.with(mContext).load(list.get(position).getPic_url()).into(holder.mImageView);  }  @Override  public int getItemCount() {    return list.size();  }  public class ViewHolder extends RecyclerView.ViewHolder {    ImageView mImageView;    TextView mTextView;    public ViewHolder(View itemView) {      super(itemView);      mImageView = itemView.findViewById(R.id.image);      mTextView = itemView.findViewById(R.id.t1);    }  }}

Bfrag.java

 

public class Bfrag extends Fragment{  private RecyclerView mRecyclerView;  LeftAdapter adapter;  String urlString="http://www.zhaoapi.cn/product/getCatagory";  String urlString2="http://www.zhaoapi.cn/product/getProductCatagory";  private RecyclerView mRecyclerView2;  @Nullable  @Override  public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {    View view = View.inflate(getActivity(), R.layout.bfrag, null);//分類頁面    mRecyclerView = view.findViewById(R.id.rv1); //左側列表    mRecyclerView2 = view.findViewById(R.id.rv2); //右    initData();    return view;  }  private void initData() {    OkHttps okHttps = OkHttps.getInstance();    okHttps.doGet(urlString, new OkHttps.OkCallback() {      @Override      public void onResponse(String json) { //瀑布流        LeftBean leftBean = new Gson().fromJson(json,LeftBean.class);        List<LeftBean.DataBean> results = leftBean.getData();        adapter = new LeftAdapter(getActivity());        adapter.setDatas(results);        mRecyclerView.setAdapter(adapter);        mRecyclerView.setLayoutManager(new LinearLayoutManager(getActivity(),LinearLayoutManager.VERTICAL,false));        adapter.setOnItemClickListener(new LeftAdapter.OnItemClickListener() {          @Override          public void onItemClick(int position) {            //Toast.makeText(getActivity(),position+"",Toast.LENGTH_SHORT).show();            rigth(position);          }        });      }      @Override      public void onFailure(Exception e) {      }    });  }  public void rigth(int position){    HashMap<String, String> map = new HashMap<>();    map.put("cid",position+1+"");    OkHttps.getInstance().doPost(urlString2,map,new OkHttps.OkCallback() {      @Override      public void onResponse(String json) {        RightBean rightBean = new Gson().fromJson(json,RightBean.class);        List<RightBean.DataBean> results = rightBean.getData();        RightAdapter rightAdapter = new RightAdapter(getActivity());        rightAdapter.setDatas(results);        mRecyclerView2.setAdapter(rightAdapter);        mRecyclerView2.setLayoutManager(new GridLayoutManager(getActivity(),3));      }      @Override      public void onFailure(Exception e) {      }    });  }}

bfrag.xml

<android.support.v7.widget.RecyclerView    android:id="@+id/rv1"    android:layout_width="0dp"    android:layout_weight="2"    android:layout_height="match_parent"/>  <android.support.v7.widget.RecyclerView    android:id="@+id/rv2"    android:layout_width="0dp"    android:layout_weight="10"    android:layout_height="match_parent"/></LinearLayout>

LeftAdapter.java

public class LeftAdapter extends RecyclerView.Adapter<LeftAdapter.ViewHolder>{  private Context mContext;  ArrayList<LeftBean.DataBean> list;  public LeftAdapter(Context context) {    mContext = context;    list = new ArrayList<>();  }  public void setDatas(List<LeftBean.DataBean> datas) {    list.addAll(datas);  }  public interface OnItemClickListener{  //自定義接口回調設置點擊事件    void onItemClick(int position);  }  private OnItemClickListener mOnItemClickListener;  public void setOnItemClickListener(OnItemClickListener onItemClickListener){    mOnItemClickListener=onItemClickListener;  }  @NonNull  @Override  public ViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {    View view = View.inflate(mContext, R.layout.leftitem, null);    ViewHolder holder = new ViewHolder(view);    return holder;  }  @Override  public void onBindViewHolder(@NonNull final ViewHolder holder, int position) {    holder.mTextView.setText(list.get(position).getName());    holder.itemView.setOnClickListener(new View.OnClickListener() {      @Override      public void onClick(View view) {        int position1 = holder.getLayoutPosition();        mOnItemClickListener.onItemClick(position1);      }    });  }  @Override  public int getItemCount() {    return list.size();  }  public class ViewHolder extends RecyclerView.ViewHolder {    TextView mTextView;    public ViewHolder(View itemView) {      super(itemView);      mTextView = itemView.findViewById(R.id.text1);    }  }}

RightAdapter.java

public class RightAdapter extends RecyclerView.Adapter<RightAdapter.ViewHolder>{  private Context mContext;  ArrayList<RightBean.DataBean> list;  public RightAdapter(Context context) {    mContext = context;    list = new ArrayList<>();  }  public void setDatas(List<RightBean.DataBean> datas) {    list.addAll(datas);  }  @NonNull  @Override  public ViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {    View view = View.inflate(mContext, R.layout.rightitem, null);    ViewHolder holder = new ViewHolder(view);    return holder;  }  @Override  public void onBindViewHolder(@NonNull ViewHolder holder, int position) {    holder.mTextView.setText(list.get(position).getName());    Glide.with(mContext).load(list.get(position).getList().get(position).getIcon()).into(holder.mImageView);  }  @Override  public int getItemCount() {    return list.size();  }  public class ViewHolder extends RecyclerView.ViewHolder {    ImageView mImageView;    TextView mTextView;    public ViewHolder(View itemView) {      super(itemView);      mImageView = itemView.findViewById(R.id.image1);      mTextView = itemView.findViewById(R.id.text2);    }  }}

OkHttps.java

public class OkHttps {  Handler handler;  private final OkHttpClient mOkHttpClient;  private static OkHttps mOkHttps;  private OkHttps() {    handler = new Handler(Looper.getMainLooper());    LoggingInterceptor loggingInterceptor = new LoggingInterceptor(); //日志攔截器    mOkHttpClient = new OkHttpClient.Builder()        .addInterceptor(loggingInterceptor)  //設置日志攔截器        .connectTimeout(5000, TimeUnit.MILLISECONDS)        .readTimeout(5000,TimeUnit.MILLISECONDS)        .writeTimeout(5000,TimeUnit.MILLISECONDS)        .build();  }  public static OkHttps getInstance(){    if (mOkHttps==null){      synchronized (OkHttps.class){        if (mOkHttps==null){          return mOkHttps=new OkHttps();        }      }    }    return mOkHttps;  }  public interface OkCallback{    void onResponse(String json);    void onFailure(Exception e);  }  public void doPost(String url, Map<String,String> map, final OkCallback okCallback){    FormBody.Builder builder = new FormBody.Builder();    if (map!=null){      for (String key:map.keySet()){        builder.add(key,map.get(key));      }    }    FormBody formBody = builder.build();    final Request request = new Request.Builder()        .post(formBody)        .url(url)        .build();    Call call = mOkHttpClient.newCall(request);    call.enqueue(new Callback() {      @Override      public void onFailure(Call call, final IOException e) {        if (okCallback!=null){          handler.post(new Runnable() {            @Override            public void run() {              okCallback.onFailure(e);            }          });        }      }      @Override      public void onResponse(Call call, Response response) throws IOException {        try {          if (response!=null && response.isSuccessful()){            final String json = response.body().string();            handler.post(new Runnable() {              @Override              public void run() {                if (okCallback!=null){                  okCallback.onResponse(json);                  return;                }              }            });          }        }catch (IOException e){          e.printStackTrace();        }        if (okCallback!=null){          okCallback.onFailure(new Exception("網絡異常"));        }      }    });  }  public void doGet(String url, final OkCallback okCallback){    Request request = new Request.Builder()        .url(url)        .build();    Call call = mOkHttpClient.newCall(request);    call.enqueue(new Callback() {      @Override      public void onFailure(Call call, final IOException e) {        if (okCallback != null) {          //切換到主線程          handler.post(new Runnable() {            @Override            public void run() {              okCallback.onFailure(e);            }          });        }      }      @Override      public void onResponse(Call call, Response response) throws IOException {        try {          if (response != null && response.isSuccessful()) {            final String json = response.body().string();            handler.post(new Runnable() {              @Override              public void run() {                if (okCallback != null) {                  okCallback.onResponse(json);                }              }            });          }        } catch (IOException e) {          e.printStackTrace();        }      }    });  }}

依賴

implementation 'com.google.code.gson:gson:2.8.5'  implementation 'com.squareup.okhttp3:okhttp:3.12.0'  implementation 'com.android.support:recyclerview-v7:27.1.1'  implementation 'com.github.bumptech.glide:glide:3.7.0'

LoggingInterceptor.java //攔截器

class LoggingInterceptor implements Interceptor { @Override public Response intercept(Chain chain) throws IOException {  //拿到Request對象  Request request = chain.request();  long t1 = System.nanoTime();  System.out.println(" request = " + String.format("Sending request %s on %s%n%s",      request.url(), chain.connection(), request.headers()));  //拿到Response對象  Response response = chain.proceed(request);  long t2 = System.nanoTime();  //得出請求網絡,到得到結果,中間消耗了多長時間  System.out.println("response " + String.format("Received response for %s in %.1fms%n%s",      response.request().url(), (t2 - t1) / 1e6d, response.headers()));  return response; }}

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持VEVB武林網。


注:相關教程知識閱讀請移步到Android開發頻道。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
亚洲美女中文字幕| 国产色视频一区| 欧美性生交大片免网| 欧美大全免费观看电视剧大泉洋| 欧美最近摘花xxxx摘花| 欧美激情视频一区二区三区不卡| 日韩欧美中文免费| 中文在线不卡视频| 欧美电影免费在线观看| 成人午夜在线影院| 亚洲成人性视频| 日韩精品免费在线视频| 狠狠躁夜夜躁人人躁婷婷91| 成人在线免费观看视视频| 亚洲人成在线观看网站高清| 亚洲天堂影视av| 成人午夜激情免费视频| 成人亚洲综合色就1024| 在线播放国产一区二区三区| 91手机视频在线观看| 色偷偷88888欧美精品久久久| 大桥未久av一区二区三区| 国产女精品视频网站免费| 日韩av电影国产| 欧美视频专区一二在线观看| 日韩美女在线观看| 国产精品影院在线观看| 亚洲人成亚洲人成在线观看| 欧美国产中文字幕| 一区二区三区视频观看| 亚洲色图综合网| 97视频免费观看| 亚洲a级在线观看| 亚洲一区二区三区在线免费观看| 91精品国产91久久久久久最新| 欧美在线观看网站| 国产一区私人高清影院| 懂色av中文一区二区三区天美| 日韩精品在线影院| 色一区av在线| 国产精品电影网| 视频直播国产精品| 日韩精品在线免费播放| 日韩欧美亚洲成人| 日韩欧美在线免费观看| 精品五月天久久| 欧美性猛交xxxx免费看久久久| 国产剧情日韩欧美| 亚洲欧美视频在线| 久久久女人电视剧免费播放下载| 久久精品福利视频| 久久亚洲私人国产精品va| 日韩欧美国产激情| 亚洲影院色无极综合| 久久精品久久久久电影| 中文字幕日韩有码| 国产精品第100页| 亚洲综合一区二区不卡| 91精品在线观| 欧美亚洲视频在线看网址| 国产精品综合不卡av| 中文字幕亚洲欧美日韩高清| 欧美精品做受xxx性少妇| 欧美精品久久久久| 亚洲精品在线观看www| 1769国产精品| 国产精品精品一区二区三区午夜版| 欧美性受xxx| 精品视频久久久| 久久久久久久色| 久久资源免费视频| 国产偷亚洲偷欧美偷精品| 欧美亚洲视频在线观看| 久操成人在线视频| 国产精品视频资源| 欧美色videos| 日韩一区二区久久久| 亚洲激情第一页| 国产精品吹潮在线观看| 成人av番号网| 精品视频在线播放| 欧美第一页在线| 国产精品一区二区三区在线播放| 欧美成人亚洲成人| 国产不卡在线观看| 欧美日韩国产在线播放| 亚洲最大成人免费视频| 欧美一区二区大胆人体摄影专业网站| 国产精品偷伦视频免费观看国产| 欧日韩不卡在线视频| 26uuu久久噜噜噜噜| 亚洲美女av在线播放| 国产亚洲成精品久久| 18性欧美xxxⅹ性满足| 一区二区三区国产在线观看| 精品久久久av| 在线亚洲国产精品网| 国产精品中文字幕在线| 亚洲久久久久久久久久久| 在线播放日韩专区| 国产精品女人久久久久久| 美女国内精品自产拍在线播放| 亚洲跨种族黑人xxx| 国产精品亚洲网站| 91在线视频一区| 亚洲美女自拍视频| 伊人伊成久久人综合网站| 亚洲第一天堂无码专区| 国产91网红主播在线观看| 日韩av网站导航| 欧美最猛性xxxx| 久久视频免费在线播放| 国产v综合ⅴ日韩v欧美大片| 一本色道久久88精品综合| 91av在线国产| 91香蕉嫩草神马影院在线观看| 海角国产乱辈乱精品视频| 亚洲精品久久久久久久久久久| 欧美一级成年大片在线观看| 国产成人亚洲综合91| 日韩国产高清视频在线| 亚洲精品欧美日韩| 自拍偷拍亚洲一区| 中文字幕日韩在线观看| 国产99视频在线观看| 欧美韩日一区二区| 蜜臀久久99精品久久久无需会员| 亚洲一区二区三区四区在线播放| 久久久久国产精品免费网站| 深夜福利一区二区| 超碰91人人草人人干| 欧美极品少妇xxxxⅹ裸体艺术| 欧美激情第6页| 亚洲欧美国产精品专区久久| 成人激情视频在线观看| 日韩电影中文字幕一区| 日韩欧美亚洲范冰冰与中字| 影音先锋欧美精品| 欧美丝袜美女中出在线| 精品自拍视频在线观看| 国内精品久久久| 这里只有精品在线观看| 亚洲国产第一页| 国产精品女人网站| 欧美日韩中文字幕综合视频| 久久久久久美女| 久久这里只有精品视频首页| 91精品免费视频| 欧美激情在线有限公司| 亚洲精品久久久久久久久久久| 精品久久久久久中文字幕一区奶水| 超碰97人人做人人爱少妇| 亚洲一区二区少妇| 最近2019好看的中文字幕免费| 国产91久久婷婷一区二区| 久久免费视频在线观看| 欧美福利视频网站| 亚洲国语精品自产拍在线观看| 最新国产精品拍自在线播放| 欧美日韩午夜剧场| 国内精品国产三级国产在线专| 亚洲人线精品午夜| 国产精品网站视频| 这里只有精品视频在线|