Latest web development tutorials

Android-Fragmentierung Liste

Im Grunde eine Liste von Fragmenten verwendet, um eine Liste der Elemente in den Trümmern zu schaffen

Bild


Beispiele

In diesem Beispiel wird erläutert, wie eine Liste zu erstellen, basierend auf ArrayAdapter Schutt. Lassen Sie uns die folgenden Schritte folgen, um zu beginnen:

Schritt Beschreibung
1 Verwenden Sie Android Studio eine Android-Anwendung zu erstellen, mit dem Namen Liste Fragment, den Paketnamen cn.uprogrammer.listfragment
2 Ändern Sie den String-Datei, fügen Sie eine neue String-Konstanten in res / Werte / string.xml in
3 Erstellen Sie eine Datei mit dem Namen list_fragment.xml Layout in res / Layout zu definieren, um eine Liste der Stücke, und fügen Sie in der activity_main.xml Etikett
4 Erstellen MyListFragment.java-Datei, die enthält onCreateView (), onActivityCreated () und OnItemClickListener ().
5 Starten Sie Android-Emulator die Anwendung und überprüfen Sie die Ergebnisse von Änderungen an der Anwendung auszuführen.

Bevor Sie mit der Codierung, Initialisierung String-Konstanten in string.xml res beginnen / Werte Verzeichnis unter.

<?xml version="1.0" encoding="utf-8"?>
<resources>
    <string name="app_name">listfragment</string>
    <string name="action_settings">Settings</string>
    <string name="hello_world">Hello world!</string>
    <string name="title_activity_main">List Fragment Demo</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>

Im Folgenden ist der Inhalt der res / Layout / activity_main.xml-Datei, die eine lineare Anordnung und Schutt Etikett enthält.

<?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="cn.uprogrammer.listfragment.MyListFragment"
        android:layout_width="match_parent"
        android:layout_height="match_parent" />

</LinearLayout>

Im Folgenden ist der Inhalt der res / Layout / list_fragment.xml-Datei, die eine lineare Layout enthält, Listenansicht und Textview.

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

Im Folgenden ist der Inhalt von src / cn.uprogrammer.listfragment / MyListFragment.java Datei. Bevor Sie mit der Codierung zu starten, müssen Sie ein paar Schritte folgen, wie folgt:

  • Erstellen Sie MyListFragment Klasse, die von ListFragment erbt.
  • In onCreateView () Methode unter Verwendung der oben definierten list_fragment xml Layout die Ansicht zu füllen.
  • In onActivityCreated () -Methode ein Array von Strings R.array.planet Ressourcen string.xml mit definierten einen ArrayAdapter zu erstellen, und den Adapter wird zur Listenansicht, und legen Sie die Liste der Elemente klicken Listener
  • In OnItemClickListener () -Methode durch Toast Nachricht die Position des Objekts anzuzeigen geklickt
package cn.uprogrammer.listfragment;

import android.app.ListFragment;

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

Der folgende Code ist der Inhalt MainActivity.java:

package cn.uprogrammer.listfragment;

import android.app.Activity;
import android.os.Bundle;

public class MainActivity extends Activity {

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

Im Folgenden ist der Inhalt der Datei AndroidManifest.xml:

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

    <application
        android:icon="@drawable/ic_launcher"
        android:label="@string/app_name"
        android:theme="@style/AppTheme" >

        <activity
            android:name=".MainActivity"
            android:label="@string/title_activity_main" >

            <intent-filter>
                <action android:name="android.intent.action.MAIN" />
                <category android:name="android.intent.category.LAUNCHER"/>
            </intent-filter>

        </activity>

    </application>
</manifest>

Lassen Sie uns einfach die geänderte Liste Fragment Anwendung ausführen. Ich nehme an, Sie AVD während der Installationsumgebung erstellt haben. Öffnen Sie das Projekt in der aktiven Datei, klicken Sie in der Symbolleiste auf Bild Icon ausführen, um die Anwendung im Android Studio. Android Studio installieren Sie die Anwendung auf dem AVD und gestartet. Wenn alles gut geht, wird es auf dem Emulator-Fenster angezeigt werden, wie folgt:

Bild