Une barre de recherche (composant SeekBar)
Ceci est un exemple minimaliste d'utilisation d'une barre de recherche (composant SeekBar). La barre est crée avec une valeur courante de 25 et un maximum de 50 (la valeur par défaut est 100).
À chaque déplacement du curseur (glissement du doigt), la valeur dans le TextView est mise à jour. Quand le curseur est relâché (soulèvement du doigt), un Toast affiche la valeur courante.
MainActivity.java
package net.codeandroid.exempleseekbar; import androidx.appcompat.app.AppCompatActivity; import android.os.Bundle; import android.widget.SeekBar; import android.widget.TextView; import android.widget.Toast; public class MainActivity extends AppCompatActivity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); final TextView texte = (TextView)findViewById(R.id.texte); texte.setText(Integer.toString(25)); // valeur de départ final SeekBar barre = (SeekBar)findViewById(R.id.barre); barre.setOnSeekBarChangeListener(new SeekBar.OnSeekBarChangeListener() { int valeur; @Override public void onProgressChanged(SeekBar seekBar, int progress, boolean fromUser) { valeur = progress; texte.setText(Integer.toString(progress)); } @Override public void onStartTrackingTouch(SeekBar seekBar) { // rarement utilisé } @Override public void onStopTrackingTouch(SeekBar seekBar) { Toast.makeText(getApplicationContext(), "Valeur = " + valeur, Toast.LENGTH_SHORT).show(); } }); } }
activity_main.xml
<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical" android:gravity="center_horizontal" android:padding="10dp"> <TextView android:id="@+id/texte" android:layout_width="wrap_content" android:layout_height="wrap_content" android:textSize="40sp"> </TextView> <SeekBar android:id="@+id/barre" android:layout_width="match_parent" android:layout_height="wrap_content" android:progress="25" android:max="50"> </SeekBar> </LinearLayout>