Passa ai contenuti principali

Android Studio - Ricerca valore all'interno di una lista

In questo articolo vedremo come eseguire una ricerca di un numero o una parola all'interno di una lista.

ESEMPIO 1:
Ecco come si presenta il file activity_main.xml
<?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"
android:orientation="vertical"
android:layout_margin="5dp"
tools:context=".MainActivity">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Inserire un numero tra quelli della lista oppure un qualsiasi numero e poi premere il pulsante Cerca"
android:textColor="#000000"
android:textSize="16sp"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintLeft_toLeftOf="parent"
app:layout_constraintRight_toRightOf="parent"
app:layout_constraintTop_toTopOf="parent" />
<TextView
android:id="@+id/textView"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="10dp"
android:text="Lista: 1,2.3,4,5,6,7,8,9"
android:textColor="#000000"
android:textSize="16sp" />
<EditText
android:id="@+id/editText"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:ems="10"
android:inputType="number" />
<Button
android:id="@+id/button"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="Cerca" />
<TextView
android:id="@+id/textView2"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:textColor="#000000"
android:textSize="16sp" />
</LinearLayout>
Queste righe di codice si occupano di verificare una variabile all'interno di una lista di elementi
//dichiarazione della lista di elementi
val list = listOf("1", "2", "3", "4", "5", "6", "7", "8", "9")
//dichiarazione variabile elemento utilizzando la funzione singleOrNull{it = 'valore'}
var item = list.singleOrNull { it == value } //value è il nome della variabile da verificare all'interno della lista
//verifica se valore è all'interno della lista
if (item != null) {
//codice che viene eseguito se il valore si trova nella lista
}
else
{
//codice che viene eseguito se il valore non si trova nella lista
}
view raw list1.kt hosted with ❤ by GitHub
Ecco come si presenta il file MainActivity.kt
package com.dm.tutorialricercainlista
import androidx.appcompat.app.AppCompatActivity
import android.os.Bundle
import android.widget.Button
import android.widget.EditText
import android.widget.TextView
class MainActivity : AppCompatActivity() {
private var bnSearch: Button? = null
private var etValue: EditText? = null
private var tvResult: TextView? = null
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
bnSearch = findViewById(R.id.button)
etValue = findViewById(R.id.editText)
tvResult = findViewById(R.id.textView2)
bnSearch!!.setOnClickListener {
val value = etValue!!.text.toString()
//dichiarazione della lista di elementi
val list = listOf("1", "2", "3", "4", "5", "6", "7", "8", "9")
//dichiarazione variabile elemento utilizzando la funzione singleOrNull{it = 'valore'}
var item = list.singleOrNull { it == value }
//verifica se valore è all'interno della lista
if (item != null) {
//codice che viene eseguito se il valore si trova nella lista
tvResult!!.text = "Il valore inserito è all'interno della lista"
}
else
{
//codice che viene eseguito se il valore non si trova nella lista
tvResult!!.text = "Il valore inserito non è all'interno della lista"
}
}
}
}


Ecco un video dimostrativo


Download Project
Download file APK


ESEMPIO 2:
In questo esempio vedremo come creare una lista all'interno del file strings.xml e utilizzare questa lista per eseguire la ricerca del valore al suo interno.
Ecco come si presenta il file activity_main.xml
<?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"
android:orientation="vertical"
android:layout_margin="5dp"
tools:context=".MainActivity">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Inserire un colore tra quelli della lista oppure un qualsiasi altro colore e poi premere il pulsante Cerca"
android:textColor="#000000"
android:textSize="16sp"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintLeft_toLeftOf="parent"
app:layout_constraintRight_toRightOf="parent"
app:layout_constraintTop_toTopOf="parent" />
<TextView
android:id="@+id/textView"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="10dp"
android:text="Lista: rosso, giallo, verde, blu, nero"
android:textColor="#000000"
android:textSize="16sp" />
<EditText
android:id="@+id/editText"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:ems="10"
android:inputType="text" />
<Button
android:id="@+id/button"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="Cerca" />
<TextView
android:id="@+id/textView2"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:textColor="#000000"
android:textSize="16sp" />
</LinearLayout>
Ecco come creare una lista all'interno del file strings.xml
<string-array name="list1">
<item>rosso</item>
<item>giallo</item>
<item>verde</item>
<item>blu</item>
<item>nero</item>
</string-array>
Queste righe di codice si occupano di verificare una variabile all'interno di una lista di elementi recuperata dal file strings.xml
//recupero della lista di elementi dal file strings.xml
val list = resources.getStringArray(R.array.list1).toList()
//dichiarazione variabile elemento utilizzando la funzione singleOrNull{it = 'valore'}
var item = list.singleOrNull { it == value } //value è il nome della variabile da verificare all'interno della lista
//verifica se valore è all'interno della lista
if (item != null) {
//codice che viene eseguito se il valore si trova nella lista
}
else
{
//codice che viene eseguito se il valore non si trova nella lista
}
view raw list2.kt hosted with ❤ by GitHub
Ecco come si presenta il file MainActivity.kt
package com.dm.tutorialricercainlista2
import androidx.appcompat.app.AppCompatActivity
import android.os.Bundle
import android.widget.Button
import android.widget.EditText
import android.widget.TextView
class MainActivity : AppCompatActivity() {
private var bnSearch: Button? = null
private var etValue: EditText? = null
private var tvResult: TextView? = null
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
bnSearch = findViewById(R.id.button)
etValue = findViewById(R.id.editText)
tvResult = findViewById(R.id.textView2)
bnSearch!!.setOnClickListener {
val value = etValue!!.text.toString()
//recupero della lista di elementi dal file strings.xml
val list = resources.getStringArray(R.array.list1).toList()
//dichiarazione variabile elemento utilizzando la funzione singleOrNull{it = 'valore'}
var item = list.singleOrNull { it == value }
//verifica se valore è all'interno della lista
if (item != null) {
//codice che viene eseguito se il valore si trova nella lista
tvResult!!.text = "Il valore inserito è all'interno della lista"
}
else
{
//codice che viene eseguito se il valore non si trova nella lista
tvResult!!.text = "Il valore inserito non è all'interno della lista"
}
}
}
}


Ecco un video dimostrativo


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.