public class ShoppingActivity extends BaseActivity implements View.OnClickListener {
private List<ShoppingBean.DataBean> list = new ArrayList<>();
private EditText et;
private TextView change;
private RecyclerView rv;
private boolean flag;
private TextView find;//布局
<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"
android:orientation="vertical"
tools:context="com.example.zengyuxin1508b1014.Activity.ShoppingActivity">
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="60dp">
<EditText
android:id="@+id/et"
android:background="#ff3660"
android:hint="输入搜索关键词"
android:textColorHint="#fff"
android:layout_gravity="center"
android:layout_width="300dp"
android:layout_height="50dp" />
<TextView
android:id="@+id/find"
android:text="查找"
android:textSize="20sp"
android:paddingRight="60dp"
android:layout_alignParentRight="true"
android:layout_centerVertical="true"
android:layout_width="wrap_content"
android:layout_height="wrap_content" />
<TextView
android:id="@+id/change"
android:text="切换"
android:textSize="20sp"
android:paddingRight="5dp"
android:layout_alignParentRight="true"
android:layout_centerVertical="true"
android:layout_width="wrap_content"
android:layout_height="wrap_content" />
</RelativeLayout>
<android.support.v7.widget.RecyclerView
android:id="@+id/rv"
android:layout_width="match_parent"
android:layout_height="match_parent"></android.support.v7.widget.RecyclerView>
</LinearLayout>
//适配器
public class MyAdapter extends RecyclerView.Adapter{
private Context context;
private List<ShoppingBean.DataBean> list;
private static final int TYPE1 = 0;
private static final int TYPE2 = 1;
public MyAdapter(Context context, List<ShoppingBean.DataBean> list) {
this.context = context;
this.list = list;
}
@Override
public RecyclerView.ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
RecyclerView.ViewHolder holder = null;
if(viewType == TYPE1){
View view1 = LayoutInflater.from(context).inflate(R.layout.item1, parent, false);
holder = new Type1ViewHolder(view1);
}else{
View view2 = LayoutInflater.from(context).inflate(R.layout.item2, parent, false);
holder = new Type2ViewHolder(view2);
}
return holder;
}
@Override
public void onBindViewHolder(RecyclerView.ViewHolder holder, int position) {
if(holder instanceof Type1ViewHolder){
ShoppingBean.DataBean dataBean = list.get(position);
Type1ViewHolder type1ViewHolder = (Type1ViewHolder) holder;
type1ViewHolder.item1_price.setText(dataBean.getPrice()+"");
type1ViewHolder.item1_title.setText(dataBean.getTitle());
ImageLoader.getInstance().displayImage(dataBean.getImages(),type1ViewHolder.item1_iv);
}else{
ShoppingBean.DataBean dataBean = list.get(position);
Type2ViewHolder type2ViewHolder = (Type2ViewHolder) holder;
type2ViewHolder.item2_price.setText(dataBean.getPrice()+"");
type2ViewHolder.item2_title.setText(dataBean.getTitle());
ImageLoader.getInstance().displayImage(dataBean.getImages(),type2ViewHolder.item2_iv);
}
}
@Override
public int getItemViewType(int position) {
return position % 2 == 0? TYPE1 : TYPE2;
}
@Override
public int getItemCount() {
return list.size();
}
private class Type1ViewHolder extends RecyclerView.ViewHolder{
private final ImageView item1_iv;
private final TextView item1_title;
private final TextView item1_price;
public Type1ViewHolder(View itemView) {
super(itemView);
item1_iv = itemView.findViewById(R.id.item1_iv);
item1_title = itemView.findViewById(R.id.item1_title);
item1_price = itemView.findViewById(R.id.item1_price);
}
}
private class Type2ViewHolder extends RecyclerView.ViewHolder{
private final ImageView item2_iv;
private final TextView item2_title;
private final TextView item2_price;
public Type2ViewHolder(View itemView) {
super(itemView);
item2_iv = itemView.findViewById(R.id.item2_iv);
item2_title = itemView.findViewById(R.id.item2_title);
item2_price = itemView.findViewById(R.id.item2_price);
}
}
}
@Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_shopping); initView(); } private void initView() { et = (EditText) findViewById(R.id.et); change = (TextView) findViewById(R.id.change); rv = (RecyclerView) findViewById(R.id.rv); change.setOnClickListener(this); find = (TextView) findViewById(R.id.find); find.setOnClickListener(this); } @Override public void onClick(View v) { switch (v.getId()){ case R.id.change: if(!flag){ show(false); flag=true; }else{ show(true); flag=false; } break; case R.id.find: String s = et.getText().toString().trim(); httpUtil.doGet("http://120.27.23.105/product/searchProducts?keywords=" + s + "&page=1", null, null, ShoppingBean.class, new OnNetListener() { @Override public void onSuccess(BaseBean baseBean) throws IOException { ShoppingBean shoppingBean = (ShoppingBean) baseBean; list = shoppingBean.getData(); show(true); } @Override public void onError(IOException e) { } }); break; } } public void show(boolean flag){ rv.setLayoutManager(flag ? new LinearLayoutManager(this,LinearLayoutManager.VERTICAL,false) : new GridLayoutManager(this,2)); MyAdapter adapter = new MyAdapter(this,list); rv.setAdapter(adapter); }}