Polytechnique Sousse-2020/2021 Android
Enseignante : Yamina Ghobni
Android Adapter
1. Qu'est-ce que ListView?
2. ListItem
3. Adapter (L'adaptateur)
4. ListView Selector
5. ListView basic utilisant ArrayAdapter
6. ArrayAdapter
7. L'exemple de ListView et ArrayAdapter
1- Qu'est-ce que ListView?
ListView est un view group, affiche des éléments (elements) selon une liste et peut être déplacé
verticalement. Listview est une vue importante et est largement utilisé dans les applications Android.
Un simple exemple de ListView est votre carnet de contacts, où vous avez une liste de vos contacts
affichés dans un ListView.
A. ListItem
Polytechnique Sousse-2020/2021 Android
Enseignante : Yamina Ghobni
Un ListView est fait à partir d'un groupe de ListItem. ListItem est une ligne (row) individuelle dans
listview où les données seront affichées. Toutes les données dans listview sont affichées uniquement
via listItem. Considérez Listview comme groupe défilable de ListItems.
Polytechnique Sousse-2020/2021 Android
Enseignante : Yamina Ghobni
Android construit certaine forme ListItem différente, appelées le Layout pré- défini, qui sera
mentionné dans les exemples de ce document.
B. Adapter (L'adaptateur)
Android Adapter (L'adaptateur) est un pont entre des View (par exemple comme ListView) et les
données sous-jacentes pour ce View. Un Adapter gère des données et adapte les données dans les
lignes individuelles (ListItem) du view.
Vous pouvez lier des Adapter avec Android ListView via la méthode setAdapter. Maintenant, nous
allons voir comment Adapter fonctionne à l'aide de l'image ci-dessous.
Polytechnique Sousse-2020/2021 Android
Enseignante : Yamina Ghobni
C. AdapterView
Il existe plusieurs View ont eu besoin d'Android Adapter en vue de gérer des données affichées, ces
View sont les sous-classes de la classe AdapterView, vous pouvez voir l'illustration suivante:
D. 1.3- ListView Selector
Polytechnique Sousse-2020/2021 Android
Enseignante : Yamina Ghobni
Pour rendre ListView plus beau, vous devez personnaliser les effets, tels que modifier la couleur
d'arrière-plan de ListItem lorsque le curseur se déplace dessus ou modifier la couleur d'arrière-plan
lorsqu'il est sélectionné.
2- ListView basic utilisant ArrayAdapter
2.1- ArrayAdapter
ArrayAdapter a utilisé à afficher le ListView avec des ListItem simple, ListItem peut être fabriqué à
partir seulement un TextView, CheckedTextView, EditText,...
Au cas où vous voulez avoir un ListView avec ListItem plus compliqué, vous pouvez créer
manuellement un Adapter personnalisé.
2.2- L'exemple de ListView et ArrayAdapter
Créer un nouveau projet nommé SimpleListView.
activity_main.xml
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
xmlns:android="[Link]
xmlns:app="[Link]
xmlns:tools="[Link]
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context="[Link]">
<ListView
Polytechnique Sousse-2020/2021 Android
Enseignante : Yamina Ghobni
android:id="@+id/listView"
android:layout_width="match_parent"
android:layout_height="fill_parent"
/>
</LinearLayout>
LayoutResourcesFile : [Link]
<?xml version="1.0" encoding="utf-8"?>
<TextView xmlns:android="[Link]
android:id="@+id/textView"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Medium Text"
android:textStyle="bold"
android:textAppearance="?android:attr/textAppearanceMedium"
android:layout_marginLeft="10dp"
android:layout_marginTop="5dp"
android:padding="2dp"
android:textColor="#4d4d4d"
/>
Fichier resources : [Link]
<resources>
<string name="app_name">ListView</string>
<string-array name="array_technology">
<item>Android</item>
<item>Java</item>
<item>Php</item>
<item>Hadoop</item>
<item>Sap</item>
<item>Python</item>
<item>Ajax</item>
<item>C++</item>
<item>Ruby</item>
<item>Rails</item>
<item>.Net</item>
<item>Perl</item>
</string-array>
</resources>
[Link]
package [Link];
import [Link];
import [Link];
import [Link];
import [Link];
import [Link];
import [Link];
import [Link];
Polytechnique Sousse-2020/2021 Android
Enseignante : Yamina Ghobni
import [Link];
public class MainActivity extends AppCompatActivity {
ListView listView;
TextView textView;
String[] listItem;
@Override
protected void onCreate(Bundle savedInstanceState) {
[Link](savedInstanceState);
setContentView([Link].activity_main);
listView=(ListView)findViewById([Link]);
textView=(TextView)findViewById([Link]);
listItem = getResources().getStringArray([Link].array_technology);
final ArrayAdapter<String> adapter = new ArrayAdapter<String>(this,
[Link].simple_list_item_1, [Link].text1,
listItem);
[Link](adapter);
[Link](new [Link]() {
@Override
public void onItemClick(AdapterView<?> adapterView, View view, int
position, long l) {
// TODO Auto-generated method stub
String value=[Link](position);
[Link](getApplicationContext(),value,Toast.LENGTH_SHORT).show();
}
});
}
}