Android - Fragmento de lista

Versión de soporte de biblioteca estática del ListFragment del marco. Se utiliza para escribir aplicaciones que se ejecutan en plataformas anteriores a Android 3.0. Cuando se ejecuta en Android 3.0 o superior, esta implementación todavía se usa.

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

Lista en fragmentos

Ejemplo

Este ejemplo le explicará cómo crear su propio fragmento de lista basado en arrayAdapter. Así que sigamos los siguientes pasos de manera similar a lo que seguimos al crear el ejemplo de Hello World:

Paso Descripción
1 Utilizará Android Studio para crear una aplicación de Android y nombrarla SimpleListFragment en un paquete com.example.tutorialspoint7.myapplication , con Activity en blanco.
2 Modifique el archivo de cadena, que se ha colocado en res / values ​​/ string.xml para agregar nuevas constantes de cadena
3 Cree un diseño llamado list_fragment.xml en el directorio res / layout para definir los fragmentos de su lista. y agregue la etiqueta de fragmento (<fragment>) a su activity_main.xml
4 Cree un myListFragment.java, que se coloca en java / myListFragment.java y contiene onCreateView () , onActivityCreated () y OnItemClickListener ()
5 Ejecute la aplicación para iniciar el emulador de Android y verifique el resultado de los cambios realizados en la aplicación.

Antes de comenzar a codificar, inicializaré las constantes de cadena dentro del archivo string.xml en el directorio 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>

A continuación se mostrará el contenido de res/layout/activity_main.xmlarchivo. contenía diseño lineal y etiqueta de fragmento.

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

A continuación se mostrará el contenido de res/layout/list_fragment.xmlarchivo. contenía diseño lineal, vista de lista y vista de texto

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

siguiente será el contenido de src/main/java/myListFragment.java archivo. antes de escribir en el código, debe seguir algunos pasos como se muestra a continuación

  • Cree una clase MyListFragment y extiéndala a ListFragment.

  • Dentro de onCreateView() , infle la vista con el diseño xml list_fragment definido anteriormente.

  • Dentro de onActivityCreated() , cree un arrayadapter a partir del recurso, es decir, utilizando la matriz de cadenas R.array.planet que puede encontrar dentro de string.xml y configure este adaptador en listview y también configure el onItem click Listener.

  • Dentro de OnItemClickListener() método, muestra un mensaje de brindis con el nombre del elemento en el que se está haciendo 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();
   }
}

El siguiente código será el contenido 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);
   }
}

El siguiente código será el contenido de manifest.xml, que se ha colocado en 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>

Ejecutando la aplicación

Intentemos ejecutar nuestro SimpleListFragmentaplicación que acabamos de crear. Supongo que habías creado tuAVDmientras realiza la configuración del entorno. Para ejecutar la aplicación desde Android Studio, abra uno de los archivos de actividad de su proyecto y haga clic en el icono Ejecutar en la barra de herramientas. Android instala la aplicación en su AVD y la inicia y, si todo está bien con su configuración y aplicación, se mostrará la siguiente ventana del emulador: