1. Nimm jetzt an unserem Uhans - 3. ADVENT - Gewinnspiel teil - Alle Informationen findest Du hier!

In ListView wird nur erstes Element angezeigt?

Dieses Thema im Forum "Android App Entwicklung" wurde erstellt von MegaChroniX, 12.04.2012.

  1. MegaChroniX, 12.04.2012 #1
    MegaChroniX

    MegaChroniX Threadstarter Junior Mitglied

    Beiträge:
    27
    Erhaltene Danke:
    1
    Registriert seit:
    24.10.2011
    Hallo

    Ich habe ein Problem mit einem Dynamischen Layout in Android.

    Ich möchte in folgendem Layout erreichen, dass er mir eine Übersicht über Räume in einer Etage mit den darin liegenden Elementen (Fenster, Türen) gibt.

    room.xml
    HTML:
    <?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" >
        <TextView
            android:id="@+id/textViewRoomHeader"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text=""
            android:textAppearance="?android:attr/textAppearanceLarge" />
        <ScrollView
            android:id="@+id/scrollView1"
            android:layout_width="match_parent"
            android:layout_height="match_parent" >
            <LinearLayout
                android:id="@+id/linearLayoutRoom"
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:orientation="vertical" >
            </LinearLayout>
        </ScrollView>
    </LinearLayout>
    Im LinearLayoutRoom sollen nun die Räume wie folge aufgezeige werden
    Raumname(TextView)
    Elemente (in ListView)


    Code:
          TevtView titel = (TextView) findViewById(R.id.textViewRouteHeader);
          LinearLayout layout = (LinearLayout) findViewById(R.id.linearLayoutRoom);
    
          titel.setText(getString(R.string.current_room, floor.getName()));
    
          TextView tv = null;
          ListView lv = null;
          for (Room r : floor.getRooms())
          {
             tv = new TextView(this);
    
             tv.setText(r.getName());
             layout.addView(tv);
             tv.setTextAppearance(this, android.R.style.TextAppearance_Large);
    
             lv = new ListView(this);
             lv.setAdapter(new RoomListAdapter(r.getElements(), this));
             lv.setOnItemClickListener(new OnItemClickListener()
             {
                @Override
                public void onItemClick(AdapterView<?> arg0, View arg1, int arg2, long arg3)
                {
                   Toast.makeText(FloorActivity.this, "ID: " + arg3, Toast.LENGTH_SHORT).show();
                }
                
             });
    
             layout.addView(lv);
          }
    
    Der ListAdapter funktioniert richtig und gibt auch die Liste richtig zurück.
    Es wird aber immer nur das erste Element in der Liste angezeigt.

    Wie auf dem Screenshot zu sehen, ist am rechten Ende einer jeden Liste eine scrollbar, also wird ja die ganze liste dahinter liegen...

    [​IMG]

    wie erreiche ich es, dass jede Liste in voller länge angezeigt wird?

    PS: bitte nicht schimpfen über Layout etc. bin android neuling :blushing:
     
  2. swordi, 12.04.2012 #2
    swordi

    swordi Gewerbliches Mitglied

    Beiträge:
    3,389
    Erhaltene Danke:
    441
    Registriert seit:
    09.05.2009
    listview und scrollview vertragen sich nicht
     
  3. MegaChroniX, 12.04.2012 #3
    MegaChroniX

    MegaChroniX Threadstarter Junior Mitglied

    Beiträge:
    27
    Erhaltene Danke:
    1
    Registriert seit:
    24.10.2011
    ok, aber wie erreiche ich dann die listen "unterhalb" des sichtbaren display bereichs?
    die listen an sich müssen ja nicht scrollable sein, werden ja vollständig dargestellt, sondern nur das gesamte layout
     
  4. swordi, 12.04.2012 #4
    swordi

    swordi Gewerbliches Mitglied

    Beiträge:
    3,389
    Erhaltene Danke:
    441
    Registriert seit:
    09.05.2009
    verzichte einfach auf listen und füge alle zeilen "händisch" ein.
     
  5. swordi, 12.04.2012 #5
    swordi

    swordi Gewerbliches Mitglied

    Beiträge:
    3,389
    Erhaltene Danke:
    441
    Registriert seit:
    09.05.2009
    oder du machst eine

    expandablelistview

    gruppen sind die räume
    kinder sind die jetzigen listen.

    dann hast auch das erreicht was du möchtest
     

Diese Seite empfehlen