RecyclerView的入门使用
来源:互联网 发布:arcgis js 热点格网图 编辑:程序博客网 时间:2024/05/22 03:10
RecyclerView是listview的替代品,在V7包里面。listview有的,recyclerview全都有,并且灵活性非常强,同时可以实现glid的多行与多列。recyclerview并没有实现添加addHeadview功能,但是我们可以封装一个headerview,这个百度上大把。recyclerview的横向列表非常方便,只要三句代码就可以了。话不多说,直接上代码。
先写一个界面:
public class VerticalRcActivity extends AppCompatActivity { private RecyclerView recyclerView; private CarBrandAdapter carBrandAdapter; private String[] brands; private static final int ADD_CAR_BRAND_REQUEST = 5002; private static final int ADD_CAR_BRAND_RESULT = 5003; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_vertical_rc); brands = getResources().getStringArray(R.array.car_brand); recyclerView = (RecyclerView)findViewById(R.id.vertical_rc_recyclerview); LinearLayoutManager linearLayoutManager = new LinearLayoutManager(this); linearLayoutManager.setOrientation(LinearLayoutManager.VERTICAL); recyclerView.addItemDecoration(new RecyclerViewDivider(this,LinearLayoutManager.HORIZONTAL,1, ContextCompat.getColor(this,R.color.colorPrimaryDark))); recyclerView.setLayoutManager(linearLayoutManager); carBrandAdapter = new CarBrandAdapter(this,brands,handler); recyclerView.setAdapter(carBrandAdapter); LinearLayoutManager linearLayoutManager1 = new LinearLayoutManager(this); linearLayoutManager1.setOrientation(LinearLayoutManager.HORIZONTAL); } Handler handler = new Handler(){ @Override public void handleMessage(Message msg) { super.handleMessage(msg); switch (msg.what){ case 0: Intent intent = new Intent(); intent.putExtras(msg.getData()); setResult(ADD_CAR_BRAND_RESULT,intent); finish(); break; case 1: break; default: break; } } };}
再写一个适配器:
package project.mygithub.com.myapplication;/** * 系统消息适配器. */import android.app.Activity;import android.os.Bundle;import android.os.Handler;import android.os.Message;import android.support.v7.widget.RecyclerView;import android.view.LayoutInflater;import android.view.View;import android.view.ViewGroup;import android.widget.TextView;import android.widget.Toast;/** * Created by Administrator on 2016/7/1. */public class CarBrandAdapter extends RecyclerView.Adapter<CarBrandAdapter.ViewHolder> { private LayoutInflater layoutInflater; private Activity activity; private String[] brands; private Handler handler; public CarBrandAdapter(Activity activity, String[] brands, Handler handler){ this.activity = activity; layoutInflater = LayoutInflater.from(this.activity); this.brands = brands; this.handler = handler; }; @Override public ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) { View view = layoutInflater.inflate(R.layout.item_car_brand,parent,false); ViewHolder viewHolder = new ViewHolder(view); return viewHolder; } @Override public void onBindViewHolder(ViewHolder holder, final int position) { holder.brandNameTv.setText(brands[position]); holder.brandNameTv.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { Toast.makeText(activity,"点击了" + position,Toast.LENGTH_SHORT).show(); Bundle bundle = new Bundle(); bundle.putString("carBrand",brands[position]); Message message = Message.obtain(); message.what = 0; message.setData(bundle); handler.sendMessage(message); } }); holder.brandNameTv.setOnLongClickListener(new View.OnLongClickListener() { @Override public boolean onLongClick(View view) { Toast.makeText(activity,"长按了" + position,Toast.LENGTH_SHORT).show(); return false; } }); } @Override public int getItemCount() { return brands.length; } public class ViewHolder extends RecyclerView.ViewHolder{ TextView brandNameTv; public ViewHolder(View itemView) { super(itemView); brandNameTv = (TextView)itemView.findViewById(R.id.brand_name); } }}实现横向滚动列表的话只需要把
linearLayoutManager.setOrientation(LinearLayoutManager.VERTICAL);改成linearLayoutManager1.setOrientation(LinearLayoutManager.HORIZONTAL);
具体请看github:
0 0
- RecyclerView的入门使用
- Android Kotlin入门(RecyclerView的使用)
- RecyclerView的初级入门
- RecyclerView+RecyclerView.Adapter+RecyclerView.ViewHolder的使用
- 进击的RecyclerView之入门
- RecyclerView的使用
- RecyclerView的使用
- RecyclerView 的使用详解
- RecyclerView的基本使用
- RecyclerView的使用
- Android -- RecyclerView的使用
- RecyclerView的使用
- CardView,RecyclerView的使用
- 关于RecyclerView的使用
- RecyclerView的使用
- RecyclerView的使用(一)
- PopupWindow + RecyclerView的使用
- RecyclerView的简单使用
- Openjudge NOI题库2.4基本算法之分治 7620:区间合并
- RabbitMQ消息队列(二):”Hello, World“
- nginx支持动态模块
- python自动监控日志,发邮件通知
- c++ lua服务器框架
- RecyclerView的入门使用
- Java多线程中join方法的理解
- PowerDesigner 把Comment写到name中 和把name写到Comment中 pd7以后版本可用
- Two pointers (8) -- Minimum Window Substring
- Enum底层实现初探(一)
- 范例解析:学习Android的IPC主板模式
- 常用表单JS代码
- JavaScript中遇到_.has;_.contains;_.where;
- Android九宫格解锁应用