πŸ€–Android/Java

[Android] μ•ˆλ“œλ‘œμ΄λ“œ - RecyclerView Adapterμ—μ„œ μƒˆλ‘œμš΄ μ•‘ν‹°λΉ„ν‹° μ‹€ν–‰ν•˜λŠ” 방법(Context)

루리야ㅑ 2023. 12. 29. 09:29
λ°˜μ‘ν˜•

μ½˜ν…μŠ€νŠΈ(Context)λŠ” μ•ˆλ“œλ‘œμ΄λ“œ μ• ν”Œλ¦¬μΌ€μ΄μ…˜μ˜ μ „μ—­ 정보에 μ ‘κ·Όν•  수 μžˆλŠ” μΈν„°νŽ˜μ΄μŠ€μ΄λ‹€.
μ•ˆλ“œλ‘œμ΄λ“œ μ• ν”Œλ¦¬μΌ€μ΄μ…˜μ€ μ•‘ν‹°λΉ„ν‹°(Activity), μ„œλΉ„μŠ€(Service), μ–΄ν”Œλ¦¬μΌ€μ΄μ…˜(Application) λ“±μ˜ μ»΄ν¬λ„ŒνŠΈλ‘œ κ΅¬μ„±λœλ‹€.
μ΄λŸ¬ν•œ μ»΄ν¬λ„ŒνŠΈλ“€μ€ λͺ¨λ‘ μ½˜ν…μŠ€νŠΈλ₯Ό κ°€μ§€κ³  있으며, μ½˜ν…μŠ€νŠΈλ₯Ό 톡해 λ¦¬μ†ŒμŠ€, 클래슀, μ•± ν™˜κ²½ 정보 등에 μ ‘κ·Όν•  수 μžˆλ‹€.

μ–΄λŒ‘ν„°(Adapter) ν΄λž˜μŠ€λŠ” μ»¨ν…μŠ€νŠΈμ— 직접 μ ‘κ·Όν•  수 μ—†μ§€λ§Œ, μƒμ„±μžλ₯Ό 톡해 μ½˜ν…μŠ€νŠΈλ₯Ό 전달받을 수 μžˆλ‹€.
주둜 μ–΄λŒ‘ν„°λŠ” μ•‘ν‹°λΉ„ν‹°(Activity)λ‚˜ μ»¨ν…μŠ€νŠΈλ₯Ό ν•„μš”λ‘œ ν•˜λŠ” λ‹€λ₯Έ μ•ˆλ“œλ‘œμ΄λ“œ μ»΄ν¬λ„ŒνŠΈλ‘œλΆ€ν„° μƒμ„±μžλ₯Ό 톡해 μ½˜ν…μŠ€νŠΈλ₯Ό 전달받아 μ‚¬μš©ν•œλ‹€.

 

1. Adapter 클래슀 λ‚΄ λ©€λ²„λ³€μˆ˜

public class PostAdapter extends RecyclerView.Adapter<PostAdapter.ViewHolder> {

    Context context;

    ArrayList<Post> postArrayList;
}

 

2. onCreateViewHolder μ˜€λ²„λΌμ΄λ”© ν•¨μˆ˜ μž‘μ„±

    @NonNull
    @Override
    public PostAdapter.ViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
        View view = LayoutInflater.from(context).inflate(R.layout.post_row, parent, false);
        return new PostAdapter.ViewHolder(view);
    }

 

3. MainActivity  ν™”λ©΄ ν‘œμ‹œ λΆ€λΆ„ recyclerview adapter

//화면에 ν‘œμ‹œ.
adapter = new PostAdapter(MainActivity.this, postArrayList);
recyclerView.setAdapter(adapter);

 

4. Adapter ν΄λž˜μŠ€μ— μƒμ„±μž 생성

public class PostAdapter extends RecyclerView.Adapter<PostAdapter.ViewHolder> {

    Context context;

    ArrayList<Post> postArrayList;
    
    public PostAdapter(Context context, ArrayList<Post> postArrayList){
        this.context = context;
        this.postArrayList = postArrayList;
    }
}
λ°˜μ‘ν˜•