Que faire sur ListActivity / MapActivity lors de la conversion en Fragments à l'aide de la bibliothèque de compatibilité?

Je convertis une application existante à l'API Fragments à l'aide de la bibliothèque de compatibilité. J'ai lu que vous êtes censé mettre à jour des cours qui étendent l'activité à maintenant utiliser FragmentActivity. C'est bon pour la plupart des cas, mais qu'en est-il des cours qui étendent ListActivity ou MapActivity? Quelle est la manière privilégiée de gérer cela? J'espérais qu'il y avait un ListFragmentActivity ou quelque chose dans ce sens, mais je n'en vois pas un.

  • Erreur: analyse du paquet lors de l'installation de l'APK
  • Disposition relative. Entre 2 articles
  • OnActivityResult retourne avec les données = null
  • Passer un ensemble de chaînes entre les activités Android
  • Ne peut pas importer la fonctionnalité principale car le projet en cours d'utilisation
  • Comment garder un IntentService en cours d'exécution même lorsque l'application est fermée?
  • Comment mettre à jour SimpleAdapter dans Android
  • Impossible de passer l'objet personnalisé dans une intention: la méthode mise en extra est ambiguë pour le type Intention
  • Remplacez les caractères par une image en chaîne, puis définissez la vue de texte
  • Verrouille le périphérique Android par programme
  • Ionic build Android | Erreur: aucun outil de construction installé n'a été trouvé. Installez les outils de construction Android
  • Un compte de test Android Market est-il effectivement facturé par achat en application?
  • 4 Solutions collect form web for “Que faire sur ListActivity / MapActivity lors de la conversion en Fragments à l'aide de la bibliothèque de compatibilité?”

    Il existe un ListFragment: http://developer.android.com/reference/android/app/ListFragment.html

    Pour MapActivity, malheureusement, vous devrez continuer à utiliser cela; Il n'y a pas d'API Fragment pour cela.

    C'est ce que je fais lors de la conversion d'une liste d'activité en API fragments:

    1. Remplacez lv = getListView(); Avec lv = (ListView) findViewById(android.R.id.list);

    2. Remplacez setListAdapter(adapter); Avec lv.setAdapter(adapter);

    3. Si vous avez surchargé onListItemClick() , remplacez-le par lv.setOnItemClickListener(new ListView.OnItemClickListener() {...

    4. Vous devrez définir la vue vide (qui s'affiche quand il n'y a pas de résultats) manuellement: lv.setEmptyView(findViewById(android.R.id.empty));

      Si j'utilise CursorLoader, je l'ai normalement mis sur OnLine ():

       // if there are no results if (data.getCount() == 0) { // let the user know lv.setEmptyView(findViewById(android.R.id.empty)); } else { // otherwise clear it, so it won't flash in between cursor loads lv.setEmptyView(null); } 
    5. En parlant de chargeurs de curseurs , je convertirai également l'activité pour utiliser CursorLoader si ce n'est pas déjà par ce point

    Au moins pour ListActivity Vous pouvez le modifier à FragmentActivity (toujours en cours d'exécution OnItemCLickListener) et à remplacer:

    Lv = getListView () à lv = (ListView) findViewById (R.id.your_list_view_id)

    et

    SetListAdapter (favAdapter) à lv.setAdapter (adaptateur)

    Il est possible de convertir l'activité ListActivity en FragmentActivity .

    1. Prolongez FragmentActivity au lieu de ListActivity
    2. Créez res/layout/your_activity.xml avec un ListView vide avec android:id="@+id/your_activity_list_view"
    3. Dans la fonction onCreate de votre activité, setContentView(R.layout.your_activity);
    4. Changez également onCreate votre activité pour récupérer explicitement ListView vous avez juste gonflé

    .

     ListView lv = (ListView) findViewById(R.id.your_activity_list_view); lv.setAdapter(adapter); lv.setOnItemClickListener(this); 
    coAndroid est un fan Android de Google, tout sur les téléphones Android, Android Wear, Android Dev et Android Games Apps.