본문 바로가기
IT 개발/안드로이드개발

[안드로이드] 리스트(List)만들기 - RecyclerView이용.

by 만능이되고픈 잡캐 2018. 10. 23.


[안드로이드] 리스트(List)만들기 - RecyclerView 이용.



안녕하세요. 오늘은 RecyclerView를 이용하여 List를 표현하는 방법에 대해 포스팅 하려고해요.

RecyclerView는 API Level 21(Android 5.0)이 나오면서 라이브러리로 제공된 클래스에요.

그래서 사용하기 위해서는 라이브러리를 추가해주어야 해요.

ListView를 이용하여 만들어도 되지만 RecyclerView를 이용하는 이유는 좀 더 커스텀하기 편하고 기능구현하기가 쉽다고 하네요.





1. 라이브러리 추가

다음과 같은 방법으로 라이브러리를 추가해주시면 되요.

[Project Structure...] - [app] - [Dependencies] 라이브러리추가




2. 구현방법

[MyAdapter.java]
public class Myadapter extends RecyclerView.Adapter<Myadapter.MyViewHolder> {

    private List<String>list;

    public Myadapter(List<String> list) {
        this.list = list;
    }

    @Override
    public void onBindViewHolder(@NonNull MyViewHolder holder, int position) {
        String text = list.get(position);
        holder.textView1.setText("제목"+position);
        holder.textView2.setText("내용 : "+text);
    }

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

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

    public class MyViewHolder extends RecyclerView.ViewHolder{
        public TextView textView1;
        public TextView textView2;

        MyViewHolder(View view){
            super(view);
            textView1 = (TextView)view.findViewById(R.id.text1);
            textView2 = (TextView)view.findViewById(R.id.text2);
        }
    }
}


[MainActivity.java]

public class MainActivity extends AppCompatActivity {

    private RecyclerView recyclerView1;
    private List<String>list;

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

        list = new ArrayList<>();
        list.add("http://bottlecok.tistory.com1");
        list.add("http://bottlecok.tistory.com2");
        list.add("http://bottlecok.tistory.com3");
        list.add("http://bottlecok.tistory.com4");
        list.add("http://bottlecok.tistory.com5");
        list.add("http://bottlecok.tistory.com6");

        recyclerView1 = (RecyclerView)findViewById(R.id.recyclerView1);
        recyclerView1.setLayoutManager(new LinearLayoutManager(this));
        recyclerView1.setAdapter(new Myadapter(list));

    }
}


[activity_main.xml]

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical"
    tools:context=".MainActivity">

    <android.support.v7.widget.RecyclerView
        android:id="@+id/recyclerView1"
        android:layout_width="match_parent"
        android:layout_height="match_parent">

    </android.support.v7.widget.RecyclerView>

</LinearLayout>


[recyclerview_item.xml]

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:orientation="vertical"
    android:layout_margin="3dp">

    <TextView
        android:id="@+id/text1"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:textSize="24sp" />

    <TextView
        android:id="@+id/text2"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:textSize="18sp" />
</LinearLayout>



3. 구현사진