이번 시간에는 리스트에 쓰이는 RecyclerView 화면에서 홀수 행, 짝수 행 별 색상 다르게 보여주는 방법 알아보겠습니다.
- 설명 -
1. 아이템 보여주는 화면
2. 간단한 데이터 보여주는 TextView
<?xml version="1.0" encoding="utf-8"?>
<androidx.cardview.widget.CardView xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginHorizontal="10dp"
android:layout_marginVertical="10dp"
android:orientation="vertical">
<LinearLayout
android:id="@+id/layout"
android:layout_width="match_parent"
android:layout_height="wrap_content">
<TextView
android:id="@+id/item_text"
android:layout_width="match_parent"
android:layout_height="50dp"
android:layout_marginStart="5dp"
android:gravity="center_vertical"
android:textColor="@android:color/white"
android:textSize="20sp"
android:textStyle="bold" />
</LinearLayout>
</androidx.cardview.widget.CardView>
- 설명 -
1. 아이템 화면과 데이터를 연결해주는 어댑터 클래스
2. constructor(context: Context)
생성자에 Context 매개변수 추가
색상을 변경하기 위해 Context가 필요함
3. onCreateViewHolder
화면 설정 함수
4. onBindViewHolder
데이터 설정 함수
5. holder.layout.setBackgroundColor
위치에 따라 배경색상 변경
class ListAdapter(): RecyclerView.Adapter<ListAdapter.ItemViewHolder>() {
lateinit var context: Context
var itemList: ArrayList<String> = ArrayList()
constructor(context: Context): this(){
this.context = context
}
/**
* 화면 설정
*/
override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): ItemViewHolder {
val inflater: LayoutInflater = LayoutInflater.from(parent.context)
val view: View = inflater.inflate(R.layout.list_item, parent, false)
return ItemViewHolder(view)
}
/**
* 데이터 설정
*/
override fun onBindViewHolder(holder: ItemViewHolder, position: Int) {
//데이터 넣기
holder.itemText.text = itemList[position]
//위치에 따른 홀수, 짝수행 색상 변경
if(position % 2 == 1){ //홀수행
holder.layout.setBackgroundColor(ContextCompat.getColor(context,
android.R.color.holo_green_dark))
}else{//짝수행
holder.layout.setBackgroundColor(ContextCompat.getColor(context,
android.R.color.holo_green_light))
}
}
/**
* 아이템 갯수 가져오기
*/
override fun getItemCount(): Int = itemList.size
/**
* 아이템 추가
*/
fun addItem(item: String){
itemList.add(item)
}
class ItemViewHolder(view: View): RecyclerView.ViewHolder(view){
//객체 생성
val layout: LinearLayout = view.findViewById(R.id.layout)
val itemText: TextView = view.findViewById(R.id.item_text)
}
}
- 설명 -
1. 리스트 보여주는 RecyclerView
<?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"
tools:context=".MainActivity">
<androidx.recyclerview.widget.RecyclerView
android:id="@+id/recyclerView"
android:layout_width="match_parent"
android:layout_height="match_parent"/>
</LinearLayout>
- 설명 -
1. ListAdapter(this)
어댑터에 Context 전달
2. recyclerView.adapter = adapter
RecyclerView Adapter 적용
3. sampleData
샘플 데이터 생성
class MainActivity : AppCompatActivity() {
lateinit var adapter: ListAdapter
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
//recyclerView 설정
val recyclerView: RecyclerView = findViewById(R.id.recyclerView)
recyclerView.layoutManager = LinearLayoutManager(this)
//Adapter 설정
adapter = ListAdapter(this)
//Adapter 적용
recyclerView.adapter = adapter
//샘플데이터 생성
sampleData()
}//onCreate()
fun sampleData(){
//반복( 0 ~ 20 )
for(i in 0..20){
//어댑터에 데이터 추가
adapter.addItem("Item $i")
}
//적용
adapter.notifyDataSetChanged()
}
}
2022.09.14 - [안드로이드] - [안드로이드 코틀린] SQLite ToDo List 만드는 방법 part1 - Data 클래스와 DB 클래스
[안드로이드 코틀린] SQLite ToDo List 만드는 방법 part1 - Data 클래스와 DB 클래스
이번 시간에는 ToDo List 만들기 첫 번째 시간 Data 클래스와 DB 클래스를 만들어 보겠습니다. 목차 1. 라이브러리 등록 2. ToDo 클래스 ToDoModel.kt 3. ToDo DB 클래스 ToDoDB.kt 1. 라이브러리 등..
aries574.tistory.com
2022.09.13 - [안드로이드] - [안드로이드 코틀린] 액티비티(Activity) 뒤로가기 버튼 만드는 방법
[안드로이드 코틀린] 액티비티(Activity) 뒤로가기 버튼 만드는 방법
이번 시간에는 액티비티(Activity) 이동 후에 다시 이전 화면으로 돌아가는 방법을 알아보겠습니다. 목차 1. 실행 화면 2. 액티비티 만들기 3. 환경 설정 파일 AndroidManifest.xml 4. 메인 화면 acti
aries574.tistory.com
2022.08.11 - [안드로이드] - [안드로이드 코틀린 ] RecyclerView Item Animation 서서히 나타나는 효과 주는 방법 part1
[안드로이드 코틀린 ] RecyclerView Item Animation 서서히 나타나는 효과 주는 방법 part1
recyclerView에 애니메이션 기능을 적용해서 서서히 리스트가 보이는 방법을 알아보겠습니다. 이번 시간에는 리스트에 보여지는 아이템 관련 화면과 기능을 구현하겠습니다. 목차 1. 아이템 클래
aries574.tistory.com
[안드로이드 코틀린] SharedPreferences 간단한 데이터 저장하는 방법 (0) | 2022.09.21 |
---|---|
[안드로이드 코틀린] 코드(MainActivity) 에서 배경 색상 바꾸는 다양한 방법 (0) | 2022.09.20 |
[안드로이드 코틀린] SQLite ToDo List 만드는 방법 part3 - 메인 화면과 메인 코드 (2) | 2022.09.16 |
[안드로이드 코틀린] SQLite ToDo List 만드는 방법 part2 - 할 일 화면과 어댑터 클래스 (0) | 2022.09.15 |
[안드로이드 코틀린] SQLite ToDo List 만드는 방법 part1 - Data 클래스와 DB 클래스 (0) | 2022.09.14 |
댓글 영역