首先要gradle,recyclerview相關東西
因版本的不同會有些差異,以可以執行為主
專案選擇>>Gradle Scripts>>build.gradle(Module:app)
dependencies {
//**//
compile 'com.android.support:design:25.0.0'
compile 'com.android.support:cardview-v7:25.0.0'
compile 'com.android.support:recyclerview-v7:25.0.0'
compile 'com.android.support:appcompat-v7:25.0.0'
}
如果直接用打的話有錯誤,可以手動新增
File >> Project Structure >> app >> Dependencies >>"+" >> Library dependency
這裡建議,不要手打,打一段後用alt+enter方式 import 進來比較不會錯誤!!
MainActivity_xml:
<android.support.v7.widget.RecyclerView
android:id="@+id/recyclerView"
android:layout_width="match_parent"
android:layout_height="wrap_content"
/>
MainActivity.java:
RecyclerView recyclerView = (RecyclerView)findViewById(R.id.recyclerView);
recyclerView.setLayoutManager(new StaggeredGridLayoutManager(2,StaggeredGridLayoutManager.VERTICAL)); //VERTICAL垂直
memberList.add(new Member(1,R.drawable.a18,"現在心情:遇到困難")); //須給參個三數:id,image,name
memberList.add(new Member(2,R.drawable.a20,"現在心情:非常生氣"));
memberList.add(new Member(3,R.drawable.a25,"現在心情:非常難過"));
memberList.add(new Member(4,R.drawable.a27,"現在心情:很想耍帥"));
memberList.add(new Member(5,R.drawable.a29,"現在心情:一見鍾情"));
memberList.add(new Member(6,R.drawable.a32,"現在心情:裝得很懂"));
recyclerView.setAdapter(new MemberAdapter(this,memberList));
private class MemberAdapter extends RecyclerView.Adapter<MemberAdapter.ViewHolder> {
//會import onCreateViewHolder、onBindViewHolder、getItemCount,但是還需要創ViewHolder出來
private Context context;
private LayoutInflater layoutInflater;
private List<Member> memberList;
public MemberAdapter(Context context,List<Member>memberList){
this.context = context;
layoutInflater = LayoutInflater.from(context);
this.memberList = memberList;
}
public class ViewHolder extends RecyclerView.ViewHolder{
ImageView ivImage;
TextView tvId,tvName;
public ViewHolder(View itemView){
super(itemView);
ivImage = (ImageView)itemView.findViewById(R.id.ivImage);
tvId = (TextView)itemView.findViewById(R.id.tvId);
tvName = (TextView)itemView.findViewById(R.id.tvName);
}
}
@Override
public ViewHolder onCreateViewHolder(ViewGroup viewGroup, int viewType) {
View itemView = layoutInflater.inflate(R.layout.recyclerview_cardview_item,viewGroup,false);
return new ViewHolder(itemView);
}
@Override
public void onBindViewHolder(ViewHolder viewHolder, int position) {
final Member member = memberList.get(position);
viewHolder.ivImage.setImageResource(member.getImage());
viewHolder.tvId.setText(String.valueOf(member.getId()));
viewHolder.tvName.setText(member.getName());
// viewHolder.itemView.setOnClickListener(new View.OnClickListener() { //按圖片可以跳頁
// @Override
// public void onClick(View view) {
// ImageView imageView = new ImageView(context);
// imageView.setImageResource(member.getImage());
// final Intent intent;
// switch (member.getImage()){
// case R.drawable.a18:
// intent = new Intent(MainActivity.this,LogingActivity.class);
// break;
// case R.drawable.a20:
// intent = new Intent(MainActivity.this,LogingActivity.class);
// break;
// case R.drawable.a25:
// intent = new Intent(MainActivity.this,LogingActivity.class);
// break;
// case R.drawable.a27:
// intent = new Intent(MainActivity.this,LogingActivity.class);
// break;
// case R.drawable.a29:
// intent = new Intent(MainActivity.this,LogingActivity.class);
// break;
// default:
// intent = new Intent(MainActivity.this,LogingActivity.class);
// }
// context.startActivity(intent);
// }
// });
}
@Override
public int getItemCount() {
return memberList.size();
}
}
Member.java
recyclerview_cardview_item.xml