1.//mainactivity中
package com.example.w.dsmoni1; import android.content.Intent; import android.support.v7.app.AppCompatActivity; import android.os.Bundle; import android.view.View; import android.widget.EditText; import android.widget.ImageView; import android.widget.TextView; import com.example.library.AutoFlowLayout; import com.example.library.FlowAdapter; import java.util.ArrayList; public class MainActivity extends AppCompatActivity implements View.OnClickListener { private ImageView image_search; private EditText edit_name; private TextView text_qx; private ArrayList<String> list; private ImageView image_delete; private AutoFlowLayout auto_flow; private TextView text_aearch_name; private View view; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); init(); } private void init() { list = new ArrayList<>(); image_search = findViewById(R.id.image_search); edit_name = findViewById(R.id.edit_name); text_qx = findViewById(R.id.text_qx); image_delete = findViewById(R.id.image_delete); auto_flow = findViewById(R.id.auto_flow); text_qx.setOnClickListener(this); image_delete.setOnClickListener(this); image_search.setOnClickListener(this); } @Override public void onClick(View v) { switch (v.getId()) { case R.id.text_qx: edit_name.getText().clear(); break; case R.id.image_delete: edit_name.getText().clear(); list.clear(); auto_flow.removeAllViews(); break; case R.id.image_search: String string = edit_name.getText().toString(); list.add(string); auto(); break; } } private void auto() { auto_flow.setAdapter(new FlowAdapter(list) { @Override public View getView(int i) { view = View.inflate(MainActivity.this, R.layout.main_item, null); text_aearch_name = view.findViewById(R.id.text_search_name); final String string = list.get(i); text_aearch_name.setText(string); list.clear(); text_aearch_name.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { Intent intent = new Intent(MainActivity.this, ShoppingActivity.class); intent.putExtra("name",string); startActivity(intent); } }); return view; } }); } }
2.//shoppactivity中
package com.example.w.dsmoni1; import android.app.Activity; import android.content.Intent; import android.os.Bundle; import android.support.v7.widget.GridLayoutManager; import android.support.v7.widget.LinearLayoutManager; import android.support.v7.widget.RecyclerView; import android.view.View; import android.widget.Button; import android.widget.EditText; import android.widget.ImageView; import android.widget.LinearLayout; import android.widget.ScrollView; import com.example.w.dsmoni1.presener.ShopPresenerImpl; import com.example.w.dsmoni1.view.ShopView; import com.handmark.pulltorefresh.library.PullToRefreshBase; import com.handmark.pulltorefresh.library.PullToRefreshScrollView; import java.util.List; import adapter.MyAdapter; import bean.ShopBean; public class ShoppingActivity extends Activity implements View.OnClickListener,ShopView { private ImageView image_shop_back; private ImageView image_shop_search; private ImageView image_shop_remove; private ImageView image_shop_replace; private PullToRefreshScrollView pull_refufh_view; private RecyclerView recycle_view; private Button btn_price; private Button btn_xiaoliang; private Button btn_zonghe; private EditText edit_shop_search; private boolean b=false; private ShopPresenerImpl presener; private int page=1; private int sort=0; private List<ShopBean.DataBean> data; private String tvName; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_shopping); Intent intent = getIntent(); //判断 if (intent != null) { tvName = intent.getStringExtra ("name"); } // edit_shop_search.setText(tvName); //控件 init(); initData(); } private void initData() { pull_refufh_view.setMode(PullToRefreshBase.Mode.BOTH); recycle_view.setLayoutManager(new LinearLayoutManager(ShoppingActivity.this,LinearLayoutManager.VERTICAL,false)); presener = new ShopPresenerImpl(this); pull_refufh_view.setOnRefreshListener(new PullToRefreshBase.OnRefreshListener2<ScrollView>() { @Override public void onPullDownToRefresh(PullToRefreshBase<ScrollView> pullToRefreshBase) { page=1; presener.getdata(page,sort); pull_refufh_view.onRefreshComplete(); } @Override public void onPullUpToRefresh(PullToRefreshBase<ScrollView> pullToRefreshBase) { page++; presener.getdata(page,sort); pull_refufh_view.onRefreshComplete(); } }); } private void init() { image_shop_back = findViewById(R.id.image_shop_back); image_shop_search = findViewById(R.id.image_shop_search); image_shop_remove = findViewById(R.id.image_shop_remove); edit_shop_search = findViewById(R.id.edit_shop_search); image_shop_replace = findViewById(R.id.image_shop_replace); pull_refufh_view = findViewById(R.id.pull_refhsh_view); recycle_view = findViewById(R.id.recycle_view); btn_price = findViewById(R.id.btn_price); btn_xiaoliang = findViewById(R.id.btn_xiaoliang); btn_zonghe = findViewById(R.id.btn_zonghe); image_shop_back.setOnClickListener(this); image_shop_remove.setOnClickListener(this); image_shop_replace.setOnClickListener(this); image_shop_search.setOnClickListener(this); btn_price.setOnClickListener(this); btn_xiaoliang.setOnClickListener(this); btn_zonghe.setOnClickListener(this); } @Override public void onClick(View v) { switch (v.getId()) { case R.id.image_shop_back: finish(); break; case R.id.image_shop_remove: edit_shop_search.getText().clear(); break; case R.id.image_shop_replace: if (b == false) { recycle_view.setLayoutManager(new GridLayoutManager(ShoppingActivity.this,2)); b=true; image_shop_replace.setImageResource(R.mipmap.kind_grid); } else { recycle_view.setLayoutManager(new LinearLayoutManager(ShoppingActivity.this,LinearLayoutManager.VERTICAL,false)); b=false; image_shop_replace.setImageResource(R.mipmap.kind_liner); } break; case R.id.image_shop_search: break; case R.id.btn_price: sort=2; presener.getdata(page,sort); break; case R.id.btn_xiaoliang: sort=1; presener.getdata(page,sort); break; case R.id.btn_zonghe: sort=0; presener.getdata(page,sort); break; } } @Override public void SuccessCallback(ShopBean vbean) { data = vbean.getData(); runOnUiThread(new Runnable() { @Override public void run() { MyAdapter myAdapter = new MyAdapter(ShoppingActivity.this, data); recycle_view.setAdapter(myAdapter); pull_refufh_view.onRefreshComplete(); } }); } @Override public void FailerCallback(int code) { } }
3//mainmodelImpl中
package com.example.w.dsmoni1.model; import com.google.gson.Gson; import java.io.IOException; import bean.ShopBean; import http.Api; import http.OkHttpUtils; import okhttp3.Call; import okhttp3.Callback; import okhttp3.Response; public class ShopModelImpl { public void getdata(final ShopModel shopModelListtener, final int page, final int sort){ //拼接 String api="http://www.zhaoapi.cn/product/searchProducts?keywords=手机&page="+page+"&sort="+sort+""; OkHttpUtils.doget(api, new Callback() { @Override public void onFailure(Call call, IOException e) { shopModelListtener.FailerCallback(1); } @Override public void onResponse(Call call, Response response) throws IOException { String string = response.body().string(); Gson gson = new Gson(); ShopBean shopBean = gson.fromJson(string, ShopBean.class); shopModelListtener.SuccessCallback(shopBean,page,sort); } }); } }
4.//背景
<?xml version="1.0" encoding="utf-8"?> <shape android:shape="oval" xmlns:android="http://schemas.android.com/apk/res/android"> <corners android:radius="18dp"/> <solid android:color="#EAEBEE"/> <size android:height="18dp" android:width="18dp"/> </shape>
5//api
public static final String api="http://www.zhaoapi.cn/product/searchProducts?keywords=手机&page=1&sort=0";
6.//依赖
implementation 'com.squareup.okhttp3:okhttp:3.10.0' implementation 'com.google.code.gson:gson:2.8.2' implementation 'com.github.bumptech.glide:glide:4.6.1' annotationProcessor 'com.github.bumptech.glide:compiler:4.6.1' implementation 'com.github.userswlwork:pull-to-refresh:1.0.0' implementation 'com.android.support:recyclerview-v7:27.1.1'