2012-04-04 17 views
2

Mein "graphisches Design" hat vier Reihen von Textansichten und eine Listenansicht unterhalb der Textansicht, alles ist in linearen Layouts verschachtelt.Listview in verschachteltem linearem Layout wird nicht zur Laufzeit angezeigt

Mein xml-Code hinter dem Design ist als

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

    <LinearLayout 
     android:layout_width="fill_parent" 
     android:layout_height="wrap_content" 
     android:orientation="vertical" > 

     <LinearLayout 
      android:layout_width="fill_parent" 
      android:layout_height="wrap_content" 
      android:orientation="horizontal" > 

      <TextView android:id="@+id/tvs_pname" 
       android:layout_width="wrap_content" android:layout_height="wrap_content" 
       android:text="Project Name:" android:textAppearance="?android:attr/textAppearanceMedium" /> 
      <TextView android:id="@+id/tv_pname" 
       android:layout_width="wrap_content" android:layout_height="wrap_content" 
       android:text="Large Text" android:textAppearance="?android:attr/textAppearanceLarge" /> 
     </LinearLayout> 


     <LinearLayout 
      android:layout_width="fill_parent" 
      android:layout_height="wrap_content" 
      android:orientation="horizontal" > 

      <TextView android:id="@+id/tvs_pamount" android:layout_width="wrap_content" 
       android:layout_height="wrap_content" android:text="Budgeted Amout:" 
       android:textAppearance="?android:attr/textAppearanceMedium" /> 
      <TextView android:id="@+id/tv_pamount" android:layout_width="wrap_content" 
       android:layout_height="wrap_content" android:text="Large Text" 
       android:textAppearance="?android:attr/textAppearanceLarge" /> 
     </LinearLayout> 


     <LinearLayout 
      android:layout_width="fill_parent" 
      android:layout_height="wrap_content" 
      android:orientation="horizontal" > 

      <TextView android:id="@+id/tvs_pstartdate" 
       android:layout_width="wrap_content" android:layout_height="wrap_content" 
       android:text="Start Date:" android:textAppearance="?android:attr/textAppearanceMedium" /> 
      <TextView android:id="@+id/tv_pstartdate" 
       android:layout_width="wrap_content" android:layout_height="wrap_content" 
       android:text="Large Text" android:textAppearance="?android:attr/textAppearanceLarge" /> 

     </LinearLayout> 


     <LinearLayout 
      android:layout_width="fill_parent" 
      android:layout_height="wrap_content" 
      android:orientation="horizontal" > 

      <TextView android:id="@+id/tvs_penddate" 
       android:layout_width="wrap_content" android:layout_height="wrap_content" 
       android:text="End Date:" android:textAppearance="?android:attr/textAppearanceMedium" /> 
      <TextView android:id="@+id/tv_penddate" android:layout_width="wrap_content" 
       android:layout_height="wrap_content" android:text="Large Text" 
       android:textAppearance="?android:attr/textAppearanceLarge" /> 
     </LinearLayout> 

    </LinearLayout> 
     <LinearLayout android:layout_height="fill_parent" 
      android:layout_width="fill_parent" android:orientation="vertical"> 

      <ListView android:id="@+id/lst_projlist" 
       android:layout_width="fill_parent" android:layout_height="fill_parent"> 
      </ListView> 

     </LinearLayout> 
</LinearLayout> 

folgt das Problem ist, dass, wenn ich meine app auf Emulator die Textviews laufe ebenso wie das Design erscheinen, aber die Listenansicht nicht darunter erscheint. Warum passiert dies.

Experimentell löschte ich die Listview aus meinem Code und stattdessen eine Schaltfläche dort. Als ich meine App lief, erschien sowohl die Textansicht als auch die Schaltfläche im Emulator genau wie das Design.

Also was ist das Problem mit meinem Code ?? Fehle ich eine Eigenschaft in der Listenansicht? Ich bin ein totaler Neuling damit ich weiß, kann ich die ListView mit Daten über eine Art Adapter in Ihrem Code einen sehr grundlegenden Fehler macht, bevölkern Sie

+0

Haben Sie Einträge in der ListView? –

Antwort

0

Haben Sie ein Element in Ihrem Listenansicht hinzugefügt? Weiß nicht, ob das die Lösung ist - arbeite nicht so oft mit Emulator, aber probiere es aus.

+0

yup! Das ist die Lösung – arjukhan

2

sind? Wenn die Liste keine Elemente enthält, ist sie "unsichtbar", da sie nichts anzeigen kann.

Wenn dies der Fall ist, können Sie das Tool Hierarchy Viewer mit dem Emulator verwenden, um zu analysieren, wie Ihr Layout gerendert wird, und um zu sehen, wo der ListView sein könnte.

Sie können auch mit layoutopt experimentieren, um sicherzustellen, dass Sie das optimale Layout für Ihren gesamten Bildschirm verwenden. Ich sehe eine Menge von verschachtelten LinearLayouts, die wahrscheinlich zugunsten von beispielsweise TableLayout eliminiert werden könnte.

+0

Ich werde die Tools ausprobieren, die Sie erwähnt haben .. danke – arjukhan

0

Ihr Code ist richtig. Wahrscheinlich haben Sie die Liste in Ihrem Code nicht ausgefüllt. Versuchen Sie zum Beispiel folgende Zeile zu onCreate() -Methode hinzuzufügen:

Listview lst_projlist = (Listview) findViewById (R.id.lst_projlist);

for (int i=0; i<10;i++) 
     elements.add("element "+i); 

    ArrayAdapter<String> adapter = new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1, elements); 
    lst_projlist.setAdapter(adapter); 
+0

thnks zu allen repliers! alles korrekt! Ich hatte mir nicht die Mühe gemacht, die Daten für die Liste zu erstellen. dachte, ich könnte das Layout zuerst testen ... jetzt, dass ich das getan habe .. es funktioniert perfekt: D – arjukhan

+0

Froh, dass ich helfen kann :) – Ant4res

Verwandte Themen