搜索商品点击图片切换线性布局和网格布局(代码有问题)
2017-12-19 14:22
441 查看
网格activity布局(layout_griditem)
Ok封装工具类(OKHttpUtils)
XRecyclerView的适配器(MySearchAdapter)
<?xml version="1.0" encoding="utf-8"?> <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent"> <ImageView android:id="@+id/img" android:layout_width="100dp" android:layout_height="100dp" android:src="@mipmap/ic_launcher_round" /> <TextView android:id="@+id/title" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_below="@id/img" android:layout_marginTop="10dp" android:text="标题" android:textSize="24sp" /> <TextView android:id="@+id/price" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_below="@id/title" android:layout_marginTop="10dp" android:text="价格" android:textColor="#F00" android:textSize="18sp" /> </RelativeLayout>线性activity布局(layout_listitem)
<?xml version="1.0" encoding="utf-8"?> <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent"> <ImageView android:id="@+id/img" android:layout_width="100dp" android:layout_height="100dp" android:src="@mipmap/ic_launcher_round" /> <TextView android:id="@+id/title" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_below="@id/img" android:layout_marginTop="10dp" android:text="标题" android:textSize="24sp" /> <TextView android:id="@+id/price" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_below="@id/title" android:layout_marginTop="10dp" android:text="价格" android:textColor="#F00" android:textSize="18sp" /> </RelativeLayout>主布局(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="com.bwie.sc.MainActivity"> <Button android:id="@+id/btnShopCar" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="购物车" /> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_centerHorizontal="true" android:layout_marginTop="20dp" android:text="搜索商品" android:textColor="#000" android:textSize="22sp" /> <ImageView android:id="@+id/changeImg" android:layout_width="30dp" android:layout_height="30dp" android:layout_alignParentRight="true" android:layout_marginTop="15dp" android:src="@drawable/list" /> <View android:id="@+id/v1" android:layout_width="match_parent" android:layout_height="2dp" android:layout_marginTop="60dp" android:background="#000" /> <EditText android:id="@+id/edSear" android:layout_width="300dp" android:layout_height="50dp" android:layout_below="@id/v1" /> <Button android:id="@+id/btnSear" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_below="@id/v1" android:layout_toRightOf="@id/edSear" android:text="搜索" /> <com.jcodecraeer.xrecyclerview.XRecyclerView android:id="@+id/xRecyclerView" android:layout_width="match_parent" android:layout_height="match_parent" android:layout_below="@id/btnSear" android:layout_marginTop="10dp"></com.jcodecraeer.xrecyclerview.XRecyclerView> </RelativeLayout>用于Ok封装工具类的拦截器(Intercept)
package com.bwie.sc.utils; import java.io.IOException; import okhttp3.HttpUrl; import okhttp3.Interceptor; import okhttp3.Request; import okhttp3.Response; /** * author:Created by ZhangPengFei on 2017/12/19. */ public class Intercept implements Interceptor { @Override public Response intercept(Chain chain) throws IOException { Request original = chain.request(); HttpUrl url=original.url().newBuilder() .addQueryParameter("source","android") .build(); //添加请求头 Request request = original.newBuilder() .url(url) .build(); return chain.proceed(request); } }
Ok封装工具类(OKHttpUtils)
package com.bwie.sc.utils; /** * author:Created by ZhangPengFei on 2017/12/19. */ import android.os.Handler; import android.util.Log; import java.io.IOException; import java.util.Map; import okhttp3.Call; import okhttp3.Callback; import okhttp3.OkHttpClient; import okhttp3.Request; import okhttp3.Response; /** * author:Created by WangZhiQiang on 2017/12/5. */ public class OKHttpUtils { private static OKHttpUtils okHttpUtils; private static Handler handler = new Handler(); //私有化构造方法 public OKHttpUtils() { } /** * 获取OKhttpClient实例化 */ public static OKHttpUtils getInstance() { if (null == okHttpUtils) { synchronized (OKHttpUtils.class) { if (null == okHttpUtils) { okHttpUtils = new OKHttpUtils(); } } } return okHttpUtils; } /** * 封装的异步Get请求 */ public void doGet(String path, Map<String, String> map, final IOkHttpUtils okHttpCallBack) { //创建一个字符串容器 StringBuilder sb = null; if (map.size() == 0) { if (null == sb) { sb = new StringBuilder(); sb.append(path); } } else { for (String key : map.keySet()) { if (null == sb) { sb = new StringBuilder(); sb.append(path); sb.append("?"); } else { sb.append("&"); } sb.append(key).append("=").append(map.get(key)); } } //System.out.println("分类 : "+path + sb.toString()); OkHttpClient okHttpClient = new OkHttpClient.Builder() .addInterceptor(new Intercept())//使用拦截器 .build(); Request request = new Request.Builder() .url(sb.toString()) .get() .build(); //OKHttp 网络 Call call = okHttpClient.newCall(request); //异步请求 call.enqueue(new Callback() { @Override public void onFailure(Call call, IOException e) { //请求失败 Log.e("SKN", "OK请求失败"); okHttpCallBack.onFailed(e.getMessage()); } @Override public void onResponse(Call call, final Response response) throws IOException { final String str = response.body().string(); //请求成功 handler.post(new Runnable() { @Override public void run() { Log.e("WWWW", "请求成功" + str); okHttpCallBack.onSuccess(str); } }); } }); } }Ok封装工具类的接口(IOkHttpUtils)
package com.bwie.sc.utils; /** * author:Created by ZhangPengFei on 2017/12/19. */ public interface IOkHttpUtils { void onSuccess(String str); void onFailed(String message); }
XRecyclerView的适配器(MySearchAdapter)
package com.bwie.sc.a 4000 dapter; import android.content.Context; 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.bwie.sc.R; import com.bwie.sc.bean.SearchBean; import com.nostra13.universalimageloader.core.ImageLoader; import java.util.List; /** * author:Created by ZhangPengFei on 2017/12/19. */ public class MySearchAdapter extends RecyclerView.Adapter<MySearchAdapter.ViewHolder> { private Context context; private List<SearchBean.DataBean> data; private int z; public MySearchAdapter(Context context, List<SearchBean.DataBean> data, int z) { this.context = context; this.data = data; this.z = z; } @Override public MySearchAdapter.ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) { if (z == 1) { View inflate = LayoutInflater.from(context).inflate(R.layout.layout_listitem, parent, false); ViewHolder viewHolder = new ViewHolder(inflate); return viewHolder; } else { View inflate = LayoutInflater.from(context).inflate(R.layout.layout_griditem, parent, false); ViewHolder viewHolder = new ViewHolder(inflate); return viewHolder; } } @Override public void onBindViewHolder(ViewHolder holder, int position) { ImageLoader.getInstance().displayImage(data.get(position).getImages(), holder.img); holder.title.setText(data.get(position).getTitle()); holder.price.setText(data.get(position).getPrice() + ""); } @Override public int getItemCount() { return data.size(); } class ViewHolder extends RecyclerView.ViewHolder { ImageView img; TextView title; TextView price; public ViewHolder(View itemView) { super(itemView); img = itemView.findViewById(R.id.img); title = itemView.findViewById(R.id.title); price = itemView.findViewById(R.id.price); } } }主布局代码(MainActivity)
package com.bwie.sc; import android.os.Bundle; import android.support.v7.app.AppCompatActivity; import android.support.v7.widget.GridLayoutManager; import android.support.v7.widget.LinearLayoutManager; import android.view.View; import android.widget.Button; import android.widget.EditText; import android.widget.ImageView; import com.bwie.sc.adapter.MySearchAdapter; import com.bwie.sc.bean.SearchBean; import com.bwie.sc.interfaces.ISearchPresenter; import com.bwie.sc.presenter.SearchPresenter; import com.jcodecraeer.xrecyclerview.XRecyclerView; import java.util.List; public class MainActivity extends AppCompatActivity implements ISearchPresenter { private ImageView changeImg; private EditText edSear; private Button btnSear; private XRecyclerView xRecyclerView; private SearchPresenter searchPresenter; private int page = 1; private int z; private boolean flag; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); initView();//初始化视图 searchPresenter = new SearchPresenter(this); btnSear.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { searchPresenter.receive(edSear.getText().toString(), page + ""); } }); } //初始化视图 private void initView() { changeImg = (ImageView) findViewById(R.id.changeImg); edSear = (EditText) findViewById(R.id.edSear); btnSear = (Button) findViewById(R.id.btnSear); xRecyclerView = (XRecyclerView) findViewById(R.id.xRecyclerView); } @Override public void onSuccess(final List<SearchBean.DataBean> data) { /** * 默认线性布局 */ xRecyclerView.setLayoutManager(new LinearLayoutManager(MainActivity.this, LinearLayoutManager.VERTICAL, false)); xRecyclerView.setAdapter(new MySearchAdapter(MainActivity.this, data, 1)); //图片的点击事件 changeImg.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { if (flag) {
//更换线性布局 changeImg.setImageResource(R.drawable.list); xRecyclerView.setLayoutManager(new LinearLayoutManager(MainActivity.this, LinearLayoutManager.VERTICAL, false)); xRecyclerView.setAdapter(new MySearchAdapter(MainActivity.this, data, 2)); flag = false; } else {
//更换网格布局
changeImg.setImageResource(R.drawable.grid); xRecyclerView.setLayoutManager(new GridLayoutManager(MainActivity.this, 2, LinearLayoutManager.VERTICAL, false)); xRecyclerView.setAdapter(new MySearchAdapter(MainActivity.this, data, 1)); flag = true; } } }); } @Override public void onFailed() { } }
相关文章推荐
- 简单的实现点击箭头图片切换的js代码
- RecyclerView线性布局和网格布局的切换
- js鼠标点击图片切换效果代码分享
- js鼠标点击按钮切换图片-图片自动切换-点击左右按钮切换特效代码
- 登录+注册+跳转搜素+详情切换布局+详情点击图片双击放大
- 原创JS图片放大效果(二) — 多图点击切换,鼠标移上放大 代码很美,步履不停
- js鼠标点击图片切换效果实现代码
- recycleview线性布局和网格布局的切换
- Android仿淘宝切换商品列表布局效果的示例代码
- 搜索商品,实现网格布局
- 简单的实现点击箭头图片切换的js代码
- 代码: 仿淘宝商品详情页左上,图片鼠标浮上去,图片部分区域放大 (页面布局:图片列表)
- Android 点击图片切换(代码与xml)
- 点击radiobutton 切换图片 代码
- Android 点击图片切换(代码与xml)
- 点击切换商品两种不同布局列表
- js鼠标点击按钮切换图片-图片自动切换-点击左右按钮切换特效代码
- 点击按钮线性切换网格,多条目与点击监听
- 点击某个按钮切换图片、文字描述(按钮颜色跟着改变)(简化代码)