close

首先要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 



arrow
arrow
    全站熱搜

    淺翔 發表在 痞客邦 留言(0) 人氣()