RecycleView的使用 + photoView使用

mainActivity                                  

  /*

* RecyclerView的使用:1,添加依赖,RecyclerView的依赖版本号必须跟你SDK的版本号保持一致;

implementation files('libs/uk-co-senab-photoview.jar')
    compile 'com.github.bumptech.glide:glide:3.7.0'
    compile 'com.android.support:recyclerview-v7:26.1.0'

* 2,在布局文件中,添加RecyclerView的布局;
* 3,创建adapter适配器;{
*    1,首先创建对应item的布局文件;
*    2,创建对应布局文件的viewholder,继成RecyclerView.ViewHolder
*    3,创建adapter类,继承RecyclerView.Adapter<自定义的ViewHolder>,重写三个方法
*   }
* 4,讲adapter设置给RecyclerView
*5,为recyclerView设置布局管理器,数据才能正常显示
* 6,为recyclerView设置条目点击事件{
*     1,自定义一个接口,将点击响应的方法写到接口里;
*     2,在adapter里定义一个public的方法,用来设置接口
*     3,在activity中,使用adapter的实例去调用该方法,重新接口内的点击响应方法;
*     4,在adapter里设置点击事件,调用点击接口内的方法
*     }
*
* */
public class MainActivity extends AppCompatActivity {
    private RecyclerView recyclerView;
    private MyAdapter adapter;


    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        PhotoView view = (PhotoView) findViewById(R.id.myphoto);
        Glide.with(MainActivity.this).load("http://pic40.nipic.com/20140412/11857649_170524977000_2.jpg").into(view);
        recyclerView = (RecyclerView) findViewById(R.id.myview);
        List list = new ArrayList<>();
        for (int i = 0; i < 10; i++) {
            list.add(i + "ddddd");
        }
        adapter = new MyAdapter(list, MainActivity.this);
        recyclerView.setAdapter(adapter);
        //设置布局管理器
        recyclerView.setLayoutManager(new LinearLayoutManager(MainActivity.this));
        //设置条目点击事件
        adapter.setLinstner(new OnItemClickListner() {
            @Override
            public void onitemClick(View itemView, int position) {
                System.out.println(position);
            }
        });
    }

}    



adapter


public class MyAdapter extends RecyclerView.Adapter {
    private List list = new ArrayList<>();
    private Context context;


    //构造方法
    public MyAdapter(List list, Context context) {
        this.list = list;
        this.context = context;
    }


    //第一步,创建viewholder实例,(listview的convertview+findviewbyid的操作)
    @Override
    public MyViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
        View convertview = LayoutInflater.from(context).inflate(R.layout.item, parent, false);
        final MyViewHolder holder = new MyViewHolder(convertview);
        convertview.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                listner.onitemClick(v,holder.getLayoutPosition());
            }
        });


        return holder;
    }


    //给item里的所有view设置数据;
    @Override
    public void onBindViewHolder(MyViewHolder holder, int position) {


        holder.textView.setText(list.get(position));
    }


    //返回item数量
    @Override
    public int getItemCount() {
        return list.size();
    }


    private OnItemClickListner listner;


    //设置条目点击监听事件
    public void setLinstner(OnItemClickListner linstner) {
        this.listner = linstner;
    }
}



MyViewHolder

/**
 * Created by mamiaomiao on 2018/3/2.
 * itemView相当于listview里的convertview
 */


public class MyViewHolder extends RecyclerView.ViewHolder {
    public TextView textView;

    public MyViewHolder(View itemView) {
        super(itemView);
        textView=(TextView)itemView.findViewById(R.id.mytext);
    }
}



/**
 * Created by mamiaomiao on 2018/3/2.
 * 条目点击的接口
 */


OnitemClickListner


public interface OnItemClickListner {
    void onitemClick(View itemView,int position);
}




你可能感兴趣的:(recycleView,photoView)