RecyclerView的简单适配
来源:互联网 发布:php从入门到精通 光盘 编辑:程序博客网 时间:2024/05/18 22:15
MainActivity类:
public class MainActivity extends AppCompatActivity { private SwipyRefreshLayout srl; private RecyclerView rv; private Banner banner; private List<String> images = new ArrayList<>(); private List<NewsBean> news = new ArrayList<>(); private Handler handler = new Handler(){ @Override public void handleMessage(Message msg) { super.handleMessage(msg); switch (msg.what){ case 0: String json = (String) msg.obj; try { JSONObject jsonObject = new JSONObject(json); JSONArray top_stories = jsonObject.getJSONArray("top_stories"); for (int i = 0; i < top_stories.length() ; i++) { JSONObject top = top_stories.getJSONObject(i); String image = top.getString("image"); images.add(image); } banner.setIndicatorGravity(Banner.CENTER); banner.setBannerStyle(Banner.CIRCLE_INDICATOR_TITLE); banner.isAutoPlay(true); banner.setDelayTime(2000); banner.setImages(images); JSONArray stories = jsonObject.getJSONArray("stories"); String image = null; for (int i = 0; i < stories.length(); i++) { JSONObject stories1 = stories.getJSONObject(i); String title = stories1.getString("title"); JSONArray images = stories1.getJSONArray("images"); for (int j = 0; j < images.length() ; j++) { image = images.getString(j); Log.i("image",image); } NewsBean newsBean = new NewsBean(title,image); news.add(newsBean); } LinearLayoutManager linearLayoutManager = new LinearLayoutManager(MainActivity.this); rv.setLayoutManager(linearLayoutManager); MyAdapter adapter = new MyAdapter(MainActivity.this,news); rv.setAdapter(adapter); } catch (JSONException e) { e.printStackTrace(); } break; case 1: String json1 = (String) msg.obj; try { JSONObject jsonObject = new JSONObject(json1); JSONArray stories = jsonObject.getJSONArray("stories"); String image = null; for (int i = 0; i < stories.length(); i++) { JSONObject stories1 = stories.getJSONObject(i); String title = stories1.getString("title"); JSONArray images = stories1.getJSONArray("images"); for (int j = 0; j < images.length() ; j++) { image = images.getString(j); Log.i("image",image); } NewsBean newsBean = new NewsBean(title,image); news.add(newsBean); } LinearLayoutManager linearLayoutManager = new LinearLayoutManager(MainActivity.this); rv.setLayoutManager(linearLayoutManager); MyAdapter adapter = new MyAdapter(MainActivity.this,news); rv.setAdapter(adapter); } catch (JSONException e) { e.printStackTrace(); } break; } } }; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); srl = (SwipyRefreshLayout) findViewById(R.id.srl); rv = (RecyclerView) findViewById(R.id.rv); banner = (Banner) findViewById(R.id.banner); dataGet(); srl.setDirection(SwipyRefreshLayoutDirection.BOTH); srl.setColorSchemeResources(R.color.colorAccent, R.color.colorPrimary, R.color.colorPrimaryDark); srl.setOnRefreshListener(new SwipyRefreshLayout.OnRefreshListener() { @Override public void onRefresh(int index) { dataGet(); handler.postDelayed(new Runnable() { @Override public void run() { Toast.makeText(MainActivity.this, "下拉刷新了", Toast.LENGTH_SHORT).show(); srl.setRefreshing(false); } },2000); } @Override public void onLoad(int index) { doGet(); handler.postDelayed(new Runnable() { @Override public void run() { Toast.makeText(MainActivity.this, "上拉加载了", Toast.LENGTH_SHORT).show(); srl.setRefreshing(false); } },2000); } }); } public void dataGet(){ String url = "http://news-at.zhihu.com/api/4/news/latest"; OkHttp3Utils.doGet(url, new Callback() { @Override public void onFailure(Call call, IOException e) { } @Override public void onResponse(Call call, Response response) throws IOException { String json = response.body().string(); Message message = handler.obtainMessage(0,json); message.sendToTarget(); } }); } public void doGet(){ String url = "http://news-at.zhihu.com/api/4/news/before/20131119"; OkHttp3Utils.doGet(url, new Callback() { @Override public void onFailure(Call call, IOException e) { } @Override public void onResponse(Call call, Response response) throws IOException { String json = response.body().string(); Message message = handler.obtainMessage(1,json); message.sendToTarget(); } }); }}
Adapter类:
public class MyAdapter extends RecyclerView.Adapter<MyAdapter.MyViewHolder> { private Context context; private List<NewsBean> list; public MyAdapter(Context context, List<NewsBean> list) { this.context = context; this.list = list; } @Override public MyViewHolder onCreateViewHolder(ViewGroup parent, int viewType) { //获取视图 View view = LayoutInflater.from(context).inflate(R.layout.rv_item,null); //得到WindowManager WindowManager windowManager = (WindowManager) context.getSystemService(Context.WINDOW_SERVICE); //得到屏幕的宽 int width = windowManager.getDefaultDisplay().getWidth(); RecyclerView.LayoutParams params = new RecyclerView.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.WRAP_CONTENT); params.width = width; view.setLayoutParams(params); MyViewHolder holder = new MyViewHolder(view); return holder; } @Override public void onBindViewHolder(MyViewHolder holder, int position) { holder.title.setText(list.get(position).getTitle()); Picasso.with(context).load(list.get(position).getImage()).placeholder(R.mipmap.ic_launcher).into(holder.image); } @Override public int getItemCount() { return list.size(); } public class MyViewHolder extends RecyclerView.ViewHolder{ ImageView image; TextView title; public MyViewHolder(View itemView) { super(itemView); image = itemView.findViewById(R.id.image_rv); title = itemView.findViewById(R.id.title_rv); } }}
阅读全文
0 0
- RecyclerView的简单适配
- RecyclerView的简单使用
- RecyclerView 的简单使用
- recyclerview的简单使用
- Recyclerview的简单使用
- RecyclerView的简单使用
- RecyclerView的简单用法
- RecyclerView的简单使用
- RecyclerView的简单使用
- RecyclerView的简单介绍
- RecyclerView的简单使用
- RecyclerView的简单使用
- RecyclerView的简单使用
- RecyclerView的简单使用
- RecyclerView的简单使用
- RecyclerView的简单使用
- RecyclerView 的简单使用方法
- RecyclerView 的简单封装
- gouwucheITEM
- php开发微信
- 根据文件路径、commit id、 批量获取patch
- p60-4.3(1)
- GridSearchCV
- RecyclerView的简单适配
- 购物车
- 第二届「机器智能前沿论坛」强势来袭,众多机器学习大咖邀你共话AI未来!
- 报名 | AlphaGo Zero是如何实现无师自通的?
- 综述 | 知识图谱向量化表示
- 10个快速提升技术水平的方法
- Drupal 创建一个空白页面
- 求分析
- 【Python基础教程笔记(二)】字典,条件,循环和其他语句