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>