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: