Passa ai contenuti principali

Android Studio - ListView: introduzione

In questo articolo vedremo come inserire ed utilizzare la ListView, un'oggetto versatile per inserire elenchi selezionabili di elementi all'interno della propria applicazione.

Ecco il codice per inserire una ListView all'interno del layout
<ListView
android:id="@+id/list"
android:layout_width="wrap_content"
android:layout_height="wrap_content"/>
view raw listview1.xml hosted with ❤ by GitHub
Ecco come si presenta il file activity_main.xml
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/rl"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:padding="10dp"
tools:context=".MainActivity"
>
<Button
android:id="@+id/bn"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Aggiungi elemento alla lista" />
<ListView
android:id="@+id/list"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@id/bn" />
</RelativeLayout>
Ecco il codice utilizzato per inizializzare le variabili utilizzate
//inizializzazione di un nuovo array di stringhe
private var fruits = arrayOf("")
//crea un elenco dagli elementi dell'Array di stringhe
private var fruits_list: MutableList<String> = ArrayList(Arrays.asList(*fruits))
//crea un ArrayAdapter di tipo String
private var arrayAdapter: ArrayAdapter<String>? = null
//dichiarazione delle variabili associate agli oggetti
private lateinit var lv: ListView
private lateinit var btn: Button
Ecco il codice da inserire nella funzione onCreate
//crea un ArrayAdapter da lista impostando anche uno stile "simple_list_item_1"
arrayAdapter = ArrayAdapter(this, android.R.layout.simple_list_item_1, fruits_list)
//associazione della lista all'ArrayAdapter
lv.adapter = arrayAdapter
Ecco il codice per inserire gli elementi nella ListView
//aggiunta di elementi alla lista
fruits_list.add("Android")
fruits_list.add("Studio")
fruits_list.add("Google")
/*notifyDataSetChanged ()
Notifica che i dati sono stati modificati
e qualsiasi vista che riflette
il set di dati dovrebbe aggiornarsi.*/
arrayAdapter!!.notifyDataSetChanged()

ESEMPIO 1
Inserimento elementi all'interno della ListView dopo aver cliccato sul pulsante
Ecco come si presenta il file MainActivity.kt
package com.dm.tutoriallistview1
import androidx.appcompat.app.AppCompatActivity
import android.os.Bundle
import android.widget.ArrayAdapter //importazione della Classe: ArrayAdapter
import android.widget.Button
import android.widget.ListView //importazione della classe: ListView
import java.util.*
//inizializzazione di un nuovo array di stringhe
private var fruits = arrayOf("")
//crea un elenco dagli elementi dell'Array di stringhe
private var fruits_list: MutableList<String> = ArrayList(Arrays.asList(*fruits))
//crea un ArrayAdapter di tipo String
private var arrayAdapter: ArrayAdapter<String>? = null
//dichiarazione delle variabili associate agli oggetti
private lateinit var lv: ListView
private lateinit var btn: Button
class MainActivity : AppCompatActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
//ottieni i riferimenti agli oggetti del layout
lv = findViewById(R.id.list)
btn = findViewById(R.id.bn)
//crea un ArrayAdapter da lista impostando anche uno stile "simple_list_item_1"
arrayAdapter = ArrayAdapter(this, android.R.layout.simple_list_item_1, fruits_list)
//associazione della lista all'ArrayAdapter
lv.adapter = arrayAdapter
}
override fun onResume() {
super.onResume()
//gestione del click sul pulsante
btn.setOnClickListener {
//aggiunta di elementi alla lista
fruits_list.add("Android")
fruits_list.add("Studio")
fruits_list.add("Google")
/*notifyDataSetChanged ()
Notifica che i dati sono stati modificati
e qualsiasi vista che riflette
il set di dati dovrebbe aggiornarsi.*/
arrayAdapter!!.notifyDataSetChanged()
}
}
}

Ecco un video dimostrativo


Download Project
Download file APK


ESEMPIO 2
Nell'esempio 1 abbiamo visto come aggiungere alcuni elementi alla ListView ma con un piccolo problema: la prima riga è vuota e cliccabile. In questo esempio vedremo come eliminarla.

Ecco il codice per eliminare un elemento dalla ListView
//rimozione dell'elemento "" (vuoto) dalla lista
fruits_list.remove("")
Ecco come si presenta il file MainActivity.kt
package com.dm.tutoriallistview2
import androidx.appcompat.app.AppCompatActivity
import android.os.Bundle
import android.widget.ArrayAdapter //importazione della Classe: ArrayAdapter
import android.widget.Button
import android.widget.ListView //importazione della classe: ListView
import java.util.*
//inizializzazione di un nuovo array di stringhe
private var fruits = arrayOf("")
//crea un elenco dagli elementi dell'Array di stringhe
private var fruits_list: MutableList<String> = ArrayList(Arrays.asList(*fruits))
//crea un ArrayAdapter di tipo String
private var arrayAdapter: ArrayAdapter<String>? = null
//dichiarazione delle variabili associate agli oggetti
private lateinit var lv: ListView
private lateinit var btn: Button
class MainActivity : AppCompatActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
//ottieni i riferimenti agli oggetti del layout
lv = findViewById(R.id.list)
btn = findViewById(R.id.bn)
//crea un ArrayAdapter da lista impostando anche uno stile "simple_list_item_1"
arrayAdapter = ArrayAdapter(this, android.R.layout.simple_list_item_1, fruits_list)
//associazione della lista all'ArrayAdapter
lv.adapter = arrayAdapter
//rimuove la riga vuota
fruits_list.remove("")
}
override fun onResume() {
super.onResume()
//gestione del click sul pulsante
btn.setOnClickListener {
//aggiunta di elementi alla lista
fruits_list.add("Android")
fruits_list.add("Studio")
fruits_list.add("Google")
/*notifyDataSetChanged ()
Notifica che i dati sono stati modificati
e qualsiasi vista che riflette
il set di dati dovrebbe aggiornarsi.*/
arrayAdapter!!.notifyDataSetChanged()
}
}
}



Download Project
Download file APK


ESEMPIO 3
In questo esempio vedremo come ordinare gli elementi all'interno della ListView.

Ecco il codice per ordinare gli elementi dalla ListView in ordine crescente
//permette di ordinare in modo crescente gli elementi all'interno della lista in ordine alfabetico italiano
fruits_list.sort()
fruits_list.forEach { print("$it ") }
Ecco il codice per ordinare gli elementi dalla ListView in ordine decrescente
//permette di ordinare in modo decrescente gli elementi all'interno della lista in ordine alfabetico italiano
fruits_list.sortDescending()
fruits_list.forEach { print("$it ") }
Ecco come si presenta il file MainActivity.kt
package com.dm.tutoriallistview3
import androidx.appcompat.app.AppCompatActivity
import android.os.Bundle
import android.widget.ArrayAdapter //importazione della Classe: ArrayAdapter
import android.widget.Button
import android.widget.ListView //importazione della classe: ListView
import java.util.*
//inizializzazione di un nuovo array di stringhe
private var fruits = arrayOf("")
//crea un elenco dagli elementi dell'Array di stringhe
private var fruits_list: MutableList<String> = ArrayList(Arrays.asList(*fruits))
//crea un ArrayAdapter di tipo String
private var arrayAdapter: ArrayAdapter<String>? = null
//dichiarazione delle variabili associate agli oggetti
private lateinit var lv: ListView
private lateinit var btn: Button
class MainActivity : AppCompatActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
//ottieni i riferimenti agli oggetti del layout
lv = findViewById(R.id.list)
btn = findViewById(R.id.bn)
//crea un ArrayAdapter da lista impostando anche uno stile "simple_list_item_1"
arrayAdapter = ArrayAdapter(this, android.R.layout.simple_list_item_1, fruits_list)
//associazione della lista all'ArrayAdapter
lv.adapter = arrayAdapter
//rimuove la riga vuota
fruits_list.remove("")
}
override fun onResume() {
super.onResume()
//gestione del click sul pulsante
btn.setOnClickListener {
//aggiunta di elementi alla lista
fruits_list.add("Android")
fruits_list.add("Studio")
fruits_list.add("Google")
//permette di ordinare gli elementi all'interno della lista in ordine alfabetico italiano
fruits_list.sort()
fruits_list.forEach { print("$it ") }
/*notifyDataSetChanged ()
Notifica che i dati sono stati modificati
e qualsiasi vista che riflette
il set di dati dovrebbe aggiornarsi.*/
arrayAdapter!!.notifyDataSetChanged()
}
}
}



Download Project
Download file APK


Commenti

Post popolari in questo blog

Android Studio - Impostare lingua app

In questo articolo vedremo come poter selezionare la lingua all'interno della nostra app. Nel precedente articolo in cui si parlava del file string.xml , la lingua dell'app veniva selezionata automaticamente in base alle impostazioni del dispositivo, mentre qui vedremo come poter selezionare a proprio piacimento la lingua che dovrà avere la nostra app indipendentemente dall'impostazione del dispositivo. Per prima cosa creare il layout Ecco un esempio do come può essere il file activity_main.xml Ora creare le stringhe di testo all'interno del file string.xml Ora creare la traduzione del file string.xml nelle varie lingua come descritto in questo articolo Il risultato sarà una serie di file string.xml delle varie lingue impostate. Ora queste di seguito sono tre funzioni che servono per: selezione della lingua salvataggio della selezione nelle preferenze dell'app caricamento della lingua quando si avvia l'app Ecco come si presenta il file Main...

Android Studio - Rinominare il progetto

Rinominare il progetto Android Studio ATTENZIONE!: non eseguire questa procedura se l'app è stata pubblicata su Google Play Store Quando si vuole cambiare nome al progetto: nome cartella in cui è contenuto il progetto package name bisogna eseguire questi passaggi: Andare nella cartella dove è contenuto il progetto Creare una copia del progetto in questione Rinominare la cartella copiata con il nome dell'app (non usare spazi tra le parole) Ora è necessario dire ad Android Studio il nome del nuovo progetto  Aprire Android Studio Aprire il progetto creato in precedenza Una volta caricato il progetto cliccare Build Cliccare Clean Project Attendere che venga eseguito il processo di "pulitura" Cliccare ancora su Build Cliccare su Rebuild Project Attendere che venga ricostruito il progetto Ora aprire la cartella app fino a visualizzare la cartella java Cliccare sull'ingranaggio  Deselezionare la voce Compact Middle Packa...

Arduino - Lettura tensione potenziometro e display LCD

Leggere il valore di un poteziometro (parte 2) Oggi vedremo come leggere il valore in tensione di un potenziometro collegato al pin Analogico A0 di Arduino.