2010-05-16 6 views
1

Newb alerte, je suis sûr que je fais quelque chose de stupide ici.problème ListActivity lors de l'utilisation avec RelativeLayout

J'ai progressivement étendu mon interface utilisateur et je souhaite ajouter un ListView au milieu de mon interface utilisateur. Quand je l'ajoute et change l'activité pour étendre une ListActivity au lieu d'une activité, je reçois une Force Close. En utilisant 1.5. Est-ce qu'un ListView ne fonctionne pas intégré dans un RelativeLayout?

Merci

public class Categories extends ListActivity{ 

final static String[] ITEMS = {"blah", "floop", "gnarlp", "stuff"}; 

@Override 
public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.categories); 

     ArrayAdapter<String> adapter = new ArrayAdapter<String>(this, 
       R.layout.listrow, R.id.textview, ITEMS); 
     setListAdapter(adapter); 

XML ressemble à ceci:

<?xml version="1.0" encoding="utf-8"?> 
<RelativeLayout android:id="@+id/RelativeLayout01" android:layout_width="fill_parent" android:layout_height="fill_parent" xmlns:android="http://schemas.android.com/apk/res/android"> 
<ImageView 
    android:id="@+id/ImageView01" 
    android:layout_height="fill_parent" android:layout_width="fill_parent" android:scaleType="center" android:background="@drawable/background"> 
</ImageView> 
<ImageView android:id="@+id/ImageView02" android:src="@drawable/cat_heading" android:layout_height="wrap_content" android:layout_width="wrap_content" android:layout_centerHorizontal="true"> 
    </ImageView> 
<ListView android:id="@+id/ListView01" android:layout_below="@id/ImageView02" android:layout_width="wrap_content" android:layout_height="wrap_content"></ListView> 
<RelativeLayout android:id="@+id/RelativeLayout02" android:layout_height="wrap_content" android:layout_width="wrap_content" android:layout_alignBottom="@+id/RelativeLayout01" android:layout_centerHorizontal="true"> 
<ImageButton android:id="@+id/ImageButtonRecipes" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignParentBottom="true" android:src="@drawable/recipes"></ImageButton> 
<ImageButton android:id="@+id/ImageButtonSearch" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignParentBottom="true" android:layout_toRightOf="@+id/ImageButtonRecipes" android:src="@drawable/search"></ImageButton> 
</RelativeLayout> 
</RelativeLayout> 

et listrow.xml:

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

    <TextView android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:id="@+id/textview"/> 
</LinearLayout> 
+0

ajouter la sortie de 'adb shell logcat' plz – Macarse

+0

juste vous laisser ou quelqu'un d'autre savoir, votre listrow.xml peut être remplacée par une référence à android.R.layout.simple_list_item1 – sargas

Répondre

3

Cela fonctionne aussi dans un RelativeLayout.

Voir Listactivity pour plus d'informations.

+0

Merci. Duh à moi, j'avais vu cela sur d'autres publications et quand j'ai ajouté la liste à travers l'éditeur Layout dans Eclipse, il lui a donné le nom par défaut ListView01. Merci, ça marche maintenant! – Tom

-1

Je suis assez sûr un ListActivity a besoin du paramètre setContentView être un identifiant ListView. Essayez d'étendre simplement une activité régulière à la place. Une ListActivity doit avoir un ListView avec l'ID "@ id/android: list", changer d'identifiant.

+0

setContentView Faire appel à ListActivity attend encore un fichier de mise en page , pas un id. – sargas

Questions connexes