Android: elenca frammento

Versione di supporto della libreria statica del ListFragment del framework. Utilizzato per scrivere app che vengono eseguite su piattaforme precedenti ad Android 3.0. Quando si esegue su Android 3.0 o versioni successive, questa implementazione viene ancora utilizzata.

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

Elenco in frammenti

Esempio

Questo esempio ti spiegherà come creare il tuo frammento di elenco basato su arrayAdapter. Quindi seguiamo i seguenti passaggi in modo simile a quello che abbiamo seguito durante la creazione di Hello World Example -

Passo Descrizione
1 Utilizzerai Android Studio per creare un'applicazione Android e chiamarla SimpleListFragment in un pacchetto com.example.tutorialspoint7.myapplication , con Activity vuota.
2 Modificare il file di stringa, che è stato posizionato in res / values ​​/ string.xml per aggiungere nuove costanti di stringa
3 Crea un layout chiamato list_fragment.xml nella directory res / layout per definire i frammenti di elenco. e aggiungi il tag fragment (<fragment>) al tuo activity_main.xml
4 Crea un myListFragment.java, che si trova in java / myListFragment.java e conteneva onCreateView () , onActivityCreated () e OnItemClickListener ()
5 Esegui l'applicazione per avviare l'emulatore Android e verifica il risultato delle modifiche apportate nell'applicazione.

Prima di iniziare la codifica, inizializzerò le costanti della stringa all'interno del file string.xml nella directory 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>

Di seguito sarà il contenuto di res/layout/activity_main.xmlfile. conteneva layout lineare e tag frammento.

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

Di seguito sarà il contenuto di res/layout/list_fragment.xmlfile. conteneva layout lineare, visualizzazione elenco e visualizzazione testo

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

di seguito sarà il contenuto di src/main/java/myListFragment.java file. prima di scrivere nel codice, è necessario seguire alcuni passaggi come mostrato di seguito

  • Crea una classe MyListFragment ed estendila a ListFragment.

  • Dentro il onCreateView() metodo, gonfia la vista con il layout xml list_fragment sopra definito.

  • Dentro il onActivityCreated() , crea un arrayadapter dalla risorsa, cioè usando String array R.array.planet che puoi trovare all'interno di string.xml e imposta questo adattatore su listview e imposta anche onItem click Listener.

  • Dentro il OnItemClickListener() , visualizza un messaggio di avviso con il nome dell'elemento su cui si fa clic.

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();
   }
}

Il codice seguente sarà il contenuto di 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);
   }
}

il codice seguente sarà il contenuto di manifest.xml, che è stato posizionato in 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>

Esecuzione dell'applicazione

Proviamo a eseguire il nostro SimpleListFragmentapplicazione che abbiamo appena creato. Presumo che tu abbia creato il tuoAVDdurante l'impostazione dell'ambiente. Per eseguire l'app da Android Studio, apri uno dei file di attività del progetto e fai clic sull'icona Esegui dalla barra degli strumenti. Android installa l'app sul tuo AVD e la avvia e se tutto va bene con la configurazione e l'applicazione, verrà visualizzata la seguente finestra dell'emulatore: