Android实现购物车整体页面逻辑详解

时间:2021-05-19

本文为大家讲解了Android实现购物车的整体页面逻辑,供大家参考,具体内容如下

MainActivity.java

public class MainActivity extends AppCompatActivity implements View.OnClickListener{ String url = "http://.shopcat.AddSubView android:id="@+id/add_remove_view" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginRight="10dp" /></LinearLayout>

OkHttpUtils.java

public class OkhtttpUtils { private static OkhtttpUtils mOkhtttpUtils; private OkHttpClient mOkHttpClien; private final Handler mHandler; private OkhtttpUtils() { //创建一个主线程的handler mHandler = new Handler(Looper.getMainLooper()); mOkHttpClien = new OkHttpClient.Builder() .connectTimeout(5000, TimeUnit.MILLISECONDS) .readTimeout(5000, TimeUnit.MILLISECONDS) .writeTimeout(5000, TimeUnit.MILLISECONDS) .build(); } //单例模式 public static OkhtttpUtils getInstance() { if (mOkhtttpUtils == null) { synchronized (OkhtttpUtils.class) { if (mOkhtttpUtils == null) { return mOkhtttpUtils = new OkhtttpUtils(); } } } return mOkhtttpUtils; } public interface OkCallback { void onFailure(Exception e); void onResponse(String json); } public void doPost(String url, Map<String, String> map, final OkCallback okCallback) { //创建FormBody的对象,把表单添加到formBody中 FormBody.Builder builder = new FormBody.Builder(); if (map != null) { for (String key : map.keySet()) { builder.add(key, map.get(key)); } } FormBody formBody = builder.build(); //创建Request对象 Request request = new Request.Builder() .post(formBody) .url(url) .build(); //创建Call对象 final Call call = mOkHttpClien.newCall(request); call.enqueue(new Callback() { @Override public void onFailure(Call call, final IOException e) { if (okCallback != null) { //切换到主线程 mHandler.post(new Runnable() { @Override public void run() { okCallback.onFailure(e); } }); } } @Override public void onResponse(Call call, final Response response) throws IOException { try { if (response != null && response.isSuccessful()) { final String json = response.body().string(); mHandler.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("网络异常")); } } }); } //封装doGet的网络请求 public void doGet(String url, final OkCallback okCallback) { Request request = new Request.Builder() .get() .url(url) .build(); final Call call = mOkHttpClien.newCall(request); call.enqueue(new Callback() { @Override public void onFailure(Call call, final IOException e) { if (okCallback != null) { //切换到主线程 mHandler.post(new Runnable() { @Override public void run() { okCallback.onFailure(e); } }); } } @Override public void onResponse(Call call, final Response response) throws IOException { try { if (response != null && response.isSuccessful()) { final String json = response.body().string(); mHandler.post(new Runnable() { @Override public void run() { if (okCallback != null) { okCallback.onResponse(json); return; } } }); } } catch (IOException e) { e.printStackTrace(); } } }); }}

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。

声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。

相关文章