Set up recycler view for country codes

This commit is contained in:
fgerber 2023-04-02 00:53:57 +02:00
parent 981107de36
commit 14edd3c38d
4 changed files with 88 additions and 3 deletions

View File

@ -0,0 +1,36 @@
package net.helcel.beendroid
import android.view.LayoutInflater
import android.view.View
import android.view.ViewGroup
import android.widget.CheckBox
import android.widget.TextView
import androidx.recyclerview.widget.RecyclerView
class ListAdapter(private val dataSet: List<String>) :
RecyclerView.Adapter<ListAdapter.ViewHolder>() {
class ViewHolder(view: View) : RecyclerView.ViewHolder(view) {
val textView: TextView
val checkBox: CheckBox
init {
textView = view.findViewById(R.id.textView)
checkBox = view.findViewById(R.id.checkBox)
}
}
override fun onCreateViewHolder(viewGroup: ViewGroup, viewType: Int): ViewHolder {
val view = LayoutInflater.from(viewGroup.context)
.inflate(R.layout.item_list, viewGroup, false)
return ViewHolder(view)
}
override fun onBindViewHolder(viewHolder: ViewHolder, position: Int) {
viewHolder.textView.text = dataSet[position]
}
override fun getItemCount() = dataSet.size
}

View File

@ -6,14 +6,19 @@ import android.os.Bundle
import android.view.View import android.view.View
import androidx.annotation.Nullable import androidx.annotation.Nullable
import androidx.appcompat.app.AppCompatActivity import androidx.appcompat.app.AppCompatActivity
import androidx.recyclerview.widget.LinearLayoutManager
import androidx.recyclerview.widget.ListAdapter
import androidx.recyclerview.widget.RecyclerView
import com.caverock.androidsvg.SVG import com.caverock.androidsvg.SVG
import com.caverock.androidsvg.SVGImageView import com.caverock.androidsvg.SVGImageView
import net.helcel.beendroid.R
import java.nio.charset.StandardCharsets import java.nio.charset.StandardCharsets
class MainActivity : AppCompatActivity() { class MainActivity : AppCompatActivity() {
private var map : SVGImageView? = null private lateinit var map : SVGImageView
private lateinit var list : RecyclerView
override fun onCreate(savedInstanceState: Bundle?) { override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState) super.onCreate(savedInstanceState)
@ -21,7 +26,6 @@ class MainActivity : AppCompatActivity() {
setContentView(R.layout.activity_main) setContentView(R.layout.activity_main)
map = findViewById(R.id.map) map = findViewById(R.id.map)
val cm = HashMap<Country,SVGWrapper>() val cm = HashMap<Country,SVGWrapper>()
Country.values().forEach { c-> Country.values().forEach { c->
cm[c] = SVGWrapper(applicationContext,c,Level.ZERO).load() cm[c] = SVGWrapper(applicationContext,c,Level.ZERO).load()
@ -35,7 +39,10 @@ class MainActivity : AppCompatActivity() {
canvas.drawRGB(255, 255, 255) canvas.drawRGB(255, 255, 255)
svg.renderToCanvas(canvas) svg.renderToCanvas(canvas)
map?.setImageBitmap(bitmap) map.setImageBitmap(bitmap)
list = findViewById(R.id.list)
list.layoutManager = LinearLayoutManager(applicationContext, RecyclerView.VERTICAL, false)
list.adapter = ListAdapter(Country.values().map{ it.code })
} }
} }

View File

@ -12,4 +12,11 @@
android:layout_weight="1" android:layout_weight="1"
app:css="" /> app:css="" />
<androidx.recyclerview.widget.RecyclerView
android:id="@+id/list"
android:layout_width="match_parent"
android:layout_height="0dp"
android:layout_weight="1"
android:scrollbars="vertical" />
</LinearLayout> </LinearLayout>

View File

@ -0,0 +1,35 @@
<?xml version="1.0" encoding="utf-8"?>
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="wrap_content"
xmlns:app="http://schemas.android.com/apk/res-auto">
<androidx.constraintlayout.widget.ConstraintLayout
android:layout_width="match_parent"
android:layout_height="wrap_content" >
<CheckBox
android:id="@+id/checkBox"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
app:layout_constraintEnd_toStartOf="@id/textView"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent"
app:layout_constraintBottom_toBottomOf="parent" />
<TextView
android:id="@+id/textView"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:textColor="@color/design_default_color_on_primary"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toEndOf="@id/checkBox"
app:layout_constraintTop_toTopOf="parent"
app:layout_constraintBottom_toBottomOf="parent" />
</androidx.constraintlayout.widget.ConstraintLayout>
</FrameLayout>