[안드로이드] 리스트(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. 구현사진
'IT 개발 > 안드로이드개발' 카테고리의 다른 글
[안드로이드] 필요없는 import 정리하는 법 / 불필요한 import 정리하는 법 (0) | 2018.11.23 |
---|---|
안드로이드 HTTP(PUT)방식으로 데이터 지우기 (0) | 2018.10.26 |
안드로이드 HTTP(GET)방식으로 데이터 받기 (0) | 2018.10.26 |
안드로이드 HTTP(POST)방식으로 데이터 받기 (0) | 2018.10.26 |
[안드로이드] 스피너(Spinner)이용하기 - ArrayList, ArrayAdapter사용. (3) | 2018.10.19 |
[안드로이드] 액티비티(화면)전환, Intent이용 (0) | 2018.10.19 |
[안드로이드] 현재 GPS정보 알아오기/ 내 현재위치 찾기 (2) | 2018.10.13 |
[안드로이드] JSON 파싱 - JsonArray 가져오기 (3) | 2018.10.12 |