RecyclerView的简单实用

https://www.jianshu.com/p/4f9591291365 RecyclerView多功能使用

package com.example.recyleview;

import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;
import android.support.v7.widget.LinearLayoutManager;
import android.support.v7.widget.RecyclerView;
import android.view.View;
import android.widget.Toast;

import java.util.ArrayList;

public class MainActivity extends AppCompatActivity {
//导入 RecyclerView的依赖包
private RecyclerView recycle;
private ArrayList list = new ArrayList<>();
private MyAdapter adapter;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    //初始化数据
    initDatas();
    //查找控件
    initView();
    adapter = new MyAdapter(MainActivity.this,list);
    recycle.setAdapter(adapter);
    //设置点击事件
  adapter.setOnItemClick(new MyAdapter.OnItemClick() {
      @Override
      public void onItemClick(View view, int position) {
          Toast.makeText(MainActivity.this,list.get(position),Toast.LENGTH_LONG).show();
      }
  });
}

private void initDatas() {
    for (int i = 0; i < 20; i++) {
        list.add("这是第" + i + "条数据");
    }
}

private void initView() {
    recycle = (RecyclerView) findViewById(R.id.recycle);
    //创建设置LINERlayout管理类  注意一定要写管理类
    LinearLayoutManager linearLayoutManager = new   LinearLayoutManager(MainActivity.this);
    //控制试着管理类
    recycle.setLayoutManager(linearLayoutManager);
}

}

//创建适配器
package com.example.recyleview;

import android.content.Context;
import android.support.annotation.NonNull;
import android.support.v7.widget.RecyclerView;
import android.view.View;
import android.view.ViewGroup;
import android.widget.TextView;

import java.util.List;

public class MyAdapter extends RecyclerView.Adapter<MyAdapter.ViewHolder> implements View.OnClickListener {

private Context context;
private List<String> list;

public MyAdapter(Context context, List<String> list) {
    this.context = context;
    this.list = list;
}

@NonNull
@Override
//此方法用于加载布局
public MyAdapter.ViewHolder onCreateViewHolder(@NonNull ViewGroup viewGroup, int i) {
    View view = View.inflate(context, R.layout.list_item, null);
    view.setOnClickListener(this);
    ViewHolder holder = new ViewHolder(view);
    return holder;
}

//ViewHolder类用于设置 setTag方法
@Override
public void onBindViewHolder(@NonNull MyAdapter.ViewHolder viewHolder, int i) {
    viewHolder .name1.setText(list.get(i));
    viewHolder.itemView.setTag(i);
}

@Override
public int getItemCount() {
    return list.size();
}



//类继承于RecyclerView.ViewHolder 用于查找listView中的布局文件
class ViewHolder extends RecyclerView.ViewHolder{

    private TextView name1;
    public ViewHolder(@NonNull View itemView) {
        super(itemView);
      name1 = itemView.findViewById(R.id.name);
    }
}
//点击事件 使用接口回调
//首先定义一个接口
public interface OnItemClick{
//写点击的方法
 void onItemClick(View view,int position);
}

private OnItemClick onItemClick;

public void setOnItemClick(OnItemClick onItemClick) {
    this.onItemClick = onItemClick;
}

//设置条目点击事件
//当点击事件不为空时调用方法
@Override
public void onClick(View v) {
  if (onItemClick!=null){
      onItemClick.onItemClick(v,(int)v.getTag());
  }
}

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值