class MainActivity : AppCompatActivity() { // Model: ArrayList de Record (intents=puntuació, nom) class Record(var intents: Int, var nom: String) var records: ArrayList = ArrayList() // ArrayAdapter serà l'intermediari amb la ListView lateinit var adapter: ArrayAdapter override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) enableEdgeToEdge() setContentView(R.layout.activity_main) ViewCompat.setOnApplyWindowInsetsListener(findViewById(R.id.main)) { v, insets -> val systemBars = insets.getInsets(WindowInsetsCompat.Type.systemBars()) v.setPadding(systemBars.left, systemBars.top, systemBars.right, systemBars.bottom) insets } // Afegim alguns exemples records.add(Record(33, "Manolo")) records.add(Record(12, "Pepe")) records.add(Record(42, "Laura")) // Inicialitzem l'ArrayAdapter amb el layout pertinent adapter = object : ArrayAdapter(this,R.layout.list_item,records) { override fun getView(pos: Int, convertView: View?, container: ViewGroup): View { // getView ens construeix el layout i hi "pinta" els valors de l'element en la posició pos var convertView = convertView if (convertView == null) { // inicialitzem l'element la View amb el seu layout convertView = getLayoutInflater().inflate(R.layout.list_item, container, false) } // pintem imatge val bitmap = BitmapFactory.decodeStream( assets.open("ieti_logo.png") ) convertView.findViewById(R.id.imageView).setImageBitmap( bitmap ) // "Pintem" valors (quan es refresca) convertView.findViewById(R.id.nom).text = getItem(pos)?.nom convertView.findViewById(R.id.intents).text = getItem(pos)?.intents.toString() return convertView } } // busquem la ListView i li endollem l'ArrayAdapter val lv = findViewById(R.id.recordsView) lv.setAdapter(adapter) } }