๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
๐Ÿ‘จ๐Ÿผ‍๐Ÿ’ป๊ฐœ๋ฐœ/์•ˆ๋“œ๋กœ์ด๋“œ ์ŠคํŠœ๋””์˜ค

์•ˆ๋“œ๋กœ์ด๋“œ ์ŠคํŠœ๋””์˜ค - RecyclerView(๋ฆฌ์‚ฌ์ดํด๋Ÿฌ๋ทฐ) ์กฐ์ž‘

by Janger 2022. 3. 30.
728x90
๋ฐ˜์‘ํ˜•

์ด 5๊ฐ€์ง€์˜ ์ž‘์—…์ด ํ•„์š”, ๊ฐ๊ฐ activity_main.xml, ์•„์ดํ…œ.xml, ๋ฐ์ดํ„ฐ.java, ๋ฆฌ์‚ฌ์ดํด๋Ÿฌ_์–ด๋Œ‘ํ„ฐ.java, MainActivity.java

 

 

[activity_main.xml]

๋„ํ™”์ง€ ์—ญํ• ์„ ํ•ด์ค„ activity_main.xml์— RecyclerView๋ฅผ ๋„ฃ์Œ

 

 

 

[item.xml]

๋ฆฌ์ŠคํŠธ์— ๋“ค์–ด๊ฐˆ ์•„์ดํ…œ๋“ค์„ ๊พธ๋ฉฐ์คŒ

 

 

 

[Data.java]

package com.app.listapp;

public class Data {
    private String name;
    private String phone;

    public Data(String name, String phone){
        this.name = name;
        this.phone = phone;
    }

    public String getName(){
        return this.name;
    }

    public String getPhone(){
        return this.phone;
    }


}

์•„์ดํ…œ์˜ ์ •๋ณด๋ฅผ ๋‹ด๋Š” ๊ทธ๋ฆ‡ ์—ญํ• 

 

 

 

[RecyclerAdapter.java]

package com.app.listapp;

import android.content.Context;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.Button;
import android.widget.TextView;
import android.widget.Toast;

import androidx.annotation.NonNull;
import androidx.recyclerview.widget.RecyclerView;

import java.util.ArrayList;

public class RecyclerAdapter extends RecyclerView.Adapter<RecyclerAdapter.ItemViewHolder> {

    private ArrayList<Data> listData = new ArrayList<Data>();


    public RecyclerAdapter(ArrayList<Data> list) { // ์™ธ๋ถ€ ๋ฆฌ์ŠคํŠธ๋ฅผ ๊ฐ€์ ธ์˜จ๋‹ค.
        this.listData = list;
    }


    @NonNull
    @Override
    public ItemViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
        View view = LayoutInflater.from(parent.getContext()).inflate(R.layout.item, parent, false);
        return new ItemViewHolder(view);
    }

    @Override
    public void onBindViewHolder(@NonNull ItemViewHolder holder, int position) {
        holder.onBind(listData.get(position));
    }

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



    class ItemViewHolder extends RecyclerView.ViewHolder{ // ๋ฆฌ์ŠคํŠธ ๋ทฐ ์•„์ดํ…œ์„ ์กฐ์ž‘ํ•˜๋Š” ์—ญํ• 

        private TextView textView;
        private TextView textView2;

        ItemViewHolder(View itemView){
            super(itemView);

            textView = itemView.findViewById(R.id.textView);
            textView2 = itemView.findViewById(R.id.textView2);


            // ์•„์ดํ…œ ๋ทฐ ํด๋ฆญ ๋ฆฌ์Šคํ„ฐ
            itemView.setOnClickListener(new View.OnClickListener() {
                @Override
                public void onClick(View view) {
                    int pos = getAdapterPosition();
                    Data data = listData.get(pos);

                    Toast.makeText(view.getContext(), data.getName(), Toast.LENGTH_SHORT).show();

                }
            });

        }

        void onBind(Data data){ // ๋ทฐ์— ๊ฐ’์„ ์ฑ„์›Œ์ฃผ๋Š” ์—ญํ• 
            textView.setText(data.getName());
            textView2 .setText(data.getPhone());
        }

    }
}

 

 

[MainActivity.java]

package com.app.listapp;

import androidx.appcompat.app.AppCompatActivity;
import androidx.recyclerview.widget.LinearLayoutManager;
import androidx.recyclerview.widget.RecyclerView;

import android.os.Bundle;

import java.util.ArrayList;

public class MainActivity extends AppCompatActivity {

    ArrayList<Data> list;


    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        list = new ArrayList<Data>();
        list.add( new Data("๊น€์”จ", "010-1111-1111") );
        list.add( new Data("์žฅ์”จ", "010-2222-2222") );
        list.add( new Data("์˜ค์”จ", "010-3333-3333") );
        list.add( new Data("๋…ธ์”จ", "010-4444-4444") );

        RecyclerAdapter recyclerAdapter = new RecyclerAdapter(list);

        RecyclerView recyclerView = findViewById(R.id.recycleView);

        recyclerView.setLayoutManager(new LinearLayoutManager(this));
        recyclerView.setAdapter(recyclerAdapter);

    }




}

๋งˆ๋ฌด๋ฆฌ 

 

 

 

 

 

 

์ฐธ๊ณ : 

 

[๋ฆฌ์‚ฌ์ดํด๋Ÿฌ๋ทฐ ์กฐ์ž‘]

https://dev-imaec.tistory.com/27

 

[RecyclerView] ์•ˆ๋“œ๋กœ์ด๋“œ ๋ฆฌ์‚ฌ์ดํด๋Ÿฌ๋ทฐ ๊ธฐ๋ณธ ์‚ฌ์šฉ๋ฒ•

์•ˆ๋“œ๋กœ์ด๋“œ RecycleView ๊ธฐ๋ณธ ์‚ฌ์šฉ๋ฒ•  ์•ˆ๋“œ๋กœ์ด๋“œ ์•ฑ์„ ๊ฐœ๋ฐœ ํ•˜๋‹ค๋ณด๋ฉด ์˜›๋‚ ์—๋Š” ListView(๋ฆฌ์ŠคํŠธ๋ทฐ)๋ฅผ ๋งŽ์ด ์ผ์ง€๋งŒ ์š”์ฆ˜์—” ๋ฆฌ์ŠคํŠธ๋ทฐ์˜ ๊ฑฐ์˜ ๋ชจ๋“  ๊ธฐ๋Šฅ์„ RecyclerView(๋ฆฌ์‚ฌ์ดํด๋Ÿฌ๋ทฐ)๋กœ ํ•  ์ˆ˜ ์žˆ๊ธฐ๋•Œ๋ฌธ

dev-imaec.tistory.com

https://bbaktaeho-95.tistory.com/73

 

[Android] RecyclerView (๋ฆฌ์‚ฌ์ดํด๋Ÿฌ๋ทฐ, ๋ทฐํ™€๋”, ViewHolder)

RecyclerView ๋ชฉ๋ก์„ ํ™”๋ฉด์— ์ถœ๋ ฅํ•ด์ฃผ๊ณ  ๋™์ ์œผ๋กœ ํ‘œํ˜„ํ•ด์ฃผ๋Š” ์ปจํ…Œ์ด๋„ˆ์ž…๋‹ˆ๋‹ค. ๋ฆฌ์‚ฌ์ดํด๋Ÿฌ๋ทฐ๋Š” ๊ฐ„๋‹จํ•œ ์ฝ”๋“œ๋งŒ์œผ๋กœ ListView, GridView๋กœ ๋ฐ”๊ฟ€ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๊ฐ€์žฅ ๋ณต์žกํ•œ ์ปจํ…Œ์ด๋„ˆ์ง€๋งŒ ๊ฐ€์žฅ ๋งŽ์ด ์‚ฌ์šฉ๋˜

bbaktaeho-95.tistory.com

 

[์˜จํด๋ฆญ ์ด๋ฒคํŠธ ๋ฆฌ์Šค๋„ˆ]

https://recipes4dev.tistory.com/168

 

๋ฆฌ์‚ฌ์ดํด๋Ÿฌ๋ทฐ ์•„์ดํ…œ ํด๋ฆญ ์ด๋ฒคํŠธ ์ฒ˜๋ฆฌ. (RecyclerView Item Click Event)

1. ๋ฆฌ์‚ฌ์ดํด๋Ÿฌ๋ทฐ(RecyclerView) ์•„์ดํ…œ ํด๋ฆญ. ์ง€๋‚œ ๊ธ€ [์•ˆ๋“œ๋กœ์ด๋“œ ๋ฆฌ์‚ฌ์ดํด๋Ÿฌ๋ทฐ ๊ธฐ๋ณธ ์‚ฌ์šฉ๋ฒ•. (Android RecyclerView)]์™€ [์•ˆ๋“œ๋กœ์ด๋“œ ๋ฆฌ์‚ฌ์ดํด๋Ÿฌ๋ทฐ ์‚ฌ์šฉ ์˜ˆ์ œ. (Android RecyclerView Example)]์—์„œ ๋ฆฌ์‚ฌ์ดํด๋Ÿฌ..

recipes4dev.tistory.com

https://stackoverflow.com/questions/41494464/toast-inside-onclick-recyclerview

 

Toast inside onclick recyclerview

I'm making an app in which an activity shows a recyclerview. I'm trying to get a toast when the item in the list is clicked. I've seen the various solutions on StackOverflow and they don't help.

stackoverflow.com

 

728x90
๋ฐ˜์‘ํ˜•