import androidx.annotation.NonNull;
import androidx.appcompat.app.AppCompatActivity;
import androidx.recyclerview.widget.LinearLayoutManager;
import androidx.recyclerview.widget.RecyclerView;
import android.os.Bundle;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.TextView;
import java.util.ArrayList;
import java.util.List;
public class MainActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
//객체화
RecyclerView recyclerView = (RecyclerView) findViewById(R.id.lab3_recycler);
// 어뎁터에 들어갈 데이터를 넘겨주기 위해 가상의 데이터를 생성하는 것
List<String> list = new ArrayList<>(); // dummy 데이터를 입력 할 변수 생성
for (int i = 0; i < 30; i++) { // dummy(가상) 데이터를 만들어줌 혹은 데이터 묶음 (RecyclerView에 들어갈 데이터)
list.add("NoNO" + i);
}
//recyclerview 세팅 및 사용한다고 이야기 해주는 곳
recyclerView.setAdapter(new MyAdapter(list)); // adapter를 세팅 해주는 곳
recyclerView.setLayoutManager(new LinearLayoutManager(this)); // 이외에도 다양한 recyclerView가 많다
}
// 선택한 뷰 홀더의 틀을 생성하는 곳 (뷰 홀더)
private class MyViewHolder extends RecyclerView.ViewHolder {
public TextView title;
public MyViewHolder(View itemView) {
super(itemView);
title = (TextView) itemView.findViewById(android.R.id.text1);
}
}
// 어뎁터 생성
private class MyAdapter extends RecyclerView.Adapter<MyViewHolder> {
private List<String> list;
public MyAdapter(List<String> list) {
this.list = list;
}
// 어떤 어뎁터의 틀을 사용할지 선택하는 곳 그리고 선택 한 어뎁터의 틀은 뷰 홀더가 생성해 준다.
@NonNull
@Override
public MyViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
View view = LayoutInflater.from(parent.getContext()).inflate(android.R.layout.simple_list_item_1, parent, false);
return new MyViewHolder(view);
}
// 생성한 틀에 실제 내용을 넣어주는 곳
@Override
public void onBindViewHolder(@NonNull MyViewHolder holder, int position) {
String text = list.get(position);
holder.title.setText(text);
}
// 크기를 돌려주기 위해 만듬
@Override
public int getItemCount() {
return list.size();
}
}
}
'프로그래밍 > Android Studio' 카테고리의 다른 글
RecyclerView 연습 (2) (0) | 2022.02.22 |
---|---|
안드로이드 퍼미션이란? (0) | 2022.02.01 |
안드로이드 match_parent와 fill_parent 그리고 wrap_content 차이 (0) | 2022.01.25 |
안드로이드 정리 (컴포넌트, 리소스, R.java, 레이아웃) (0) | 2022.01.23 |
안드로이드 테두리(border) 만들기 및 액션바 없애기 (0) | 2022.01.19 |