Android - Fragment de liste

Version de support de bibliothèque statique de ListFragment du framework. Utilisé pour écrire des applications qui s'exécutent sur des plates-formes antérieures à Android 3.0. Lors de l'exécution sur Android 3.0 ou supérieur, cette implémentation est toujours utilisée.

The basic implementation of list fragment is for creating list of items in fragments

Liste en fragments

Exemple

Cet exemple vous explique comment créer votre propre fragment de liste basé sur arrayAdapter. Alors, suivons les étapes suivantes pour ressembler à ce que nous avons suivi lors de la création de Hello World Exemple -

Étape La description
1 Vous utiliserez Android Studio pour créer une application Android et la nommerez SimpleListFragment sous un package com.example.tutorialspoint7.myapplication , avec une activité vide.
2 Modifiez le fichier de chaîne, qui a placé à res / values ​​/ string.xml pour ajouter de nouvelles constantes de chaîne
3 Créez une mise en page appelée list_fragment.xml sous le répertoire res / layout pour définir vos fragments de liste. et ajoutez la balise fragment (<fragment>) à votre activity_main.xml
4 Créez un myListFragment.java, qui est placé à java / myListFragment.java et il contient onCreateView () , onActivityCreated () et OnItemClickListener ()
5 Exécutez l'application pour lancer l'émulateur Android et vérifier le résultat des modifications effectuées dans l'application.

Avant de commencer à coder, je vais initialiser les constantes de chaîne dans le fichier string.xml sous le répertoire res / values

<?xml version="1.0" encoding="utf-8"?>
<resources>
   <string name="app_name">ListFragmentDemo</string>
   <string name="action_settings">Settings</string>
   <string name="hello_world">Hello world!</string>
   <string name="imgdesc">imgdesc</string>
   
   <string-array name="Planets">
      <item>Sun</item>
      <item>Mercury</item>
      <item>Venus</item>
      <item>Earth</item>
      <item>Mars</item>
      <item>Jupiter</item>
      <item>Saturn</item>
      <item>Uranus</item>
      <item>Neptune</item>
   </string-array>

</resources>

Voici le contenu de res/layout/activity_main.xmlfichier. il contenait une mise en page linéaire et une étiquette de fragment.

<?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" >
   
   <fragment
      android:id="@+id/fragment1"
      android:name="com.example.tutorialspoint7.myapplication.MyListFragment"
      android:layout_width="match_parent"
      android:layout_height="match_parent" />

</LinearLayout>

Voici le contenu de res/layout/list_fragment.xmlfichier. il contenait une disposition linéaire, une vue de liste et une vue de texte

<?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" >

   <ListView
      android:id="@android:id/list"
      android:layout_width="match_parent"
      android:layout_height="wrap_content" >
   </ListView>

   <TextView
      android:id="@android:id/empty"
      android:layout_width="match_parent"
      android:layout_height="wrap_content" >
   </TextView>
</LinearLayout>

suivant sera le contenu de src/main/java/myListFragment.java fichier.avant d'écrire dans le code, vous devez suivre quelques étapes comme indiqué ci-dessous

  • Créez une classe MyListFragment et étendez-la à ListFragment.

  • À l'intérieur de onCreateView() , gonflez la vue avec la mise en page xml list_fragment définie ci-dessus.

  • À l'intérieur de onActivityCreated() , créez un adaptateur de tableau à partir de la ressource, c'est-à-dire en utilisant le tableau de chaînes R.array.planet que vous pouvez trouver dans le string.xml et définissez cet adaptateur sur listview et définissez également le onItem click Listener.

  • À l'intérieur de OnItemClickListener() méthode, affichez un message toast avec le nom de l'élément sur lequel l'utilisateur clique.

package com.example.tutorialspoint7.myapplication;

import android.annotation.SuppressLint;
import android.app.ListFragment;
import android.os.Bundle;

import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;

import android.widget.AdapterView;
import android.widget.AdapterView.OnItemClickListener;
import android.widget.ArrayAdapter;
import android.widget.Toast;

public class MyListFragment extends ListFragment implements OnItemClickListener {
   @Override
   public View onCreateView(LayoutInflater inflater, 
      ViewGroup container, Bundle savedInstanceState) {
      View view = inflater.inflate(R.layout.list_fragment, container, false);
      return view;
   }

   @Override
   public void onActivityCreated(Bundle savedInstanceState) {
      super.onActivityCreated(savedInstanceState);
      ArrayAdapter adapter = ArrayAdapter.createFromResource(getActivity(), 
         R.array.Planets, android.R.layout.simple_list_item_1);
      setListAdapter(adapter);
      getListView().setOnItemClickListener(this);
   }

   @Override
   public void onItemClick(AdapterView<?> parent, View view, int position,long id) {
      Toast.makeText(getActivity(), "Item: " + position, Toast.LENGTH_SHORT).show();
   }
}

Le code suivant sera le contenu de MainActivity.java

package com.example.tutorialspoint7.myapplication;

import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;

public class MainActivity extends AppCompatActivity {

   @Override
   protected void onCreate(Bundle savedInstanceState) {
      super.onCreate(savedInstanceState);
      setContentView(R.layout.activity_main);
   }
}

le code suivant sera le contenu de manifest.xml, qui a été placé dans res / AndroidManifest.xml

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
   package="com.example.tutorialspoint7.myapplication">

   <application
      android:allowBackup="true"
      android:icon="@mipmap/ic_launcher"
      android:label="@string/app_name"
      android:supportsRtl="true"
      android:theme="@style/AppTheme">
      <activity android:name=".MainActivity">
         <intent-filter>
            <action android:name="android.intent.action.MAIN" />

            <category android:name="android.intent.category.LAUNCHER" />
         </intent-filter>
      </activity>
   </application>
</manifest>

Exécution de l'application

Essayons d'exécuter notre SimpleListFragmentapplication que nous venons de créer. Je suppose que vous avez créé votreAVDlors de la configuration de l'environnement. Pour exécuter l'application à partir d'Android Studio, ouvrez l'un des fichiers d'activité de votre projet et cliquez sur l' icône Exécuter dans la barre d'outils. Android installe l'application sur votre AVD et la démarre et si tout va bien avec votre configuration et votre application, elle affichera la fenêtre Emulator suivante -