mehrere listview-innen listfragment

Ich haben daran gearbeitet, zu versuchen, zwei listviews in einer Liste fragment, die ich angeführt habe zwei Listen-Ansichten in meine xml und versucht, zwei getrennte Sätze von Daten in der java-Datei, aber die Liste anzeigen von Daten für die erste lisview überschrieben wird, indem die zweite.

Wie würde ich in der Lage sein zu zeigen Sie es auf die richtige listviews mit dem code unten?

Java für fragment-wo-Liste gehen sollte:

package com.owais.shopsellswap;

import java.util.ArrayList;
import java.util.HashMap;
import android.os.Bundle;
import android.support.v4.app.ListFragment;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.SimpleAdapter;

public class Fragment_My_Profile extends ListFragment {

    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container,
            Bundle savedInstanceState) {
        View myProfileView = inflater.inflate(R.layout.fragment_my_profile, container, false);


        return myProfileView;
    }

    //Store Arralist as hashmaps for the listview
        ArrayList<HashMap<String,String>> list = new ArrayList<HashMap<String,String>>();
        ArrayList<HashMap<String,String>> list2 = new ArrayList<HashMap<String,String>>();
        //SimpleAdapter (listViewAdapter) links the array to the listview 
        private SimpleAdapter listViewAdapter;
        private SimpleAdapter listViewAdapter2;

        @Override
        public void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);

            //HashMap links each line of data to the correct TextView
            HashMap<String,String> item;
            for(int i=0;i<userInfo.length;i++){
              item = new HashMap<String,String>();
              item.put( "line1", userInfo[i][0]);
              item.put( "line2", userInfo[i][1]);
              list.add( item );
            }

            HashMap<String,String> item2;
            for(int i=0;i<ListingsArray.length;i++){
              item2 = new HashMap<String,String>();
              item2.put( "line1", ListingsArray[i][0]);
              item2.put( "line2", ListingsArray[i][1]);
              item2.put( "line3", ListingsArray[i][2]);
              list2.add( item2 );
            }


            listViewAdapter = new SimpleAdapter(getActivity(), list,                    
                    R.layout.listview_layout_1,
                    new String[] { "line1","line2" },
                    new int[] {R.id.line_a, R.id.line_b});

            listViewAdapter2 = new SimpleAdapter(getActivity(), list2,
                    R.layout.listview_layout_3,
                    new String[] { "line1","line2", "line3" },
                    new int[] {R.id.line_a1, R.id.line_b1, R.id.line_c1});

            setListAdapter(listViewAdapter);
            setListAdapter(listViewAdapter2);

        }

        private String[][] userInfo =
            {{"User","Dummy"},
            {"Email Address","[email protected]"},
            {"User Type","Staff"},
            {"Contact Number","07111111111"}};

        private String[][] ListingsArray =
            {{"audi a3","brand new audi a3 with alloywheels, cd player", "£11000"},
            {"HTC One x","brand new android smartphone", "£450"},
            {"Acer Laptop","Acer Laptop with windows 7", "£300"},
            {"Sunglass","Oakley Sunglasses in great condition", "£100"}};
    }

xml-Code für das fragment:

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:orientation="vertical" >

    <TextView
        android:id="@+id/textView2"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:background="@color/lightgrey"
        android:text="@string/userInfoHeader"
        android:textSize="15sp"
        android:textStyle="bold" />

    <ListView
        android:id="@+id/android:list"
        android:layout_width="fill_parent"
        android:layout_height="184dp"
        android:layout_alignParentLeft="true"
        android:layout_below="@+id/textView2" >
    </ListView>

    <TextView
        android:id="@+id/textView3"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:layout_alignParentLeft="true"
        android:layout_below="@+id/android:list"
        android:background="@color/lightgrey"
        android:text="@string/listingsHeader"
        android:textSize="15sp"
        android:textStyle="bold" />

    <ListView
        android:id="@+id/android:list2"
        android:layout_width="fill_parent"
        android:layout_height="184dp"
        android:layout_alignParentBottom="true"
        android:layout_alignParentLeft="true" >
    </ListView>

</RelativeLayout>

In der Liste anzeigen verwendet auch ein eigenes layout für jede Liste.

  • Dieser Satz ist, was wirklich mich warf "ich haben daran gearbeitet, zu versuchen, zwei listviews in einer Liste fragment". AFAIK ist Dies nicht möglich, da ein ListFragment ist nur konstruiert, um eine ListView mit der id @+id/android:list. Nun, was Sie tun können, ist, einfach erstellen zwei separaten ListFragments insgesamt, und Ihnen Haus in einer FragmentActivity. Dann könnten Sie einfach tauschen Sie Sie, verschieben, ersetzen, vergrößern, verkleinern tun, was Sie will, Sie aus dem Kontext, dass eine Aktivität. Dies scheint das zu sein, was Sie für gehen sowieso.
InformationsquelleAutor user1152300 | 2012-12-19
Schreibe einen Kommentar