152 votes

Votre contenu doit comporter un ListView dont l'attribut id est "Android.R.id.list".

J'ai créé un fichier xml comme ceci :

<?xml version="1.0" encoding="utf-8"?>
<ListView xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:id="@+id/list" >

</ListView>

et une activité :

public class ExampleActivity extends ListActivity {
    /** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedInstanceState) {

        super.onCreate(savedInstanceState);

        setContentView(R.layout.mainlist);
    }
}

Comme vous le voyez, je n'ai rien fait d'autre.
Mais je reçois l'erreur : Your content must have a ListView whose id attribute is 'android.R.id.list'
Même moi, j'ai le android:id="@+id/list" dans mon xml.
Quel est le problème ?

338voto

Andro Selva Points 24018

Renommez l'id de votre ListView comme ceci,

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

Puisque vous utilisez ListActivity votre fichier xml doit spécifier le mot clé Android tout en mentionnant à un ID.

Si vous avez besoin d'un ListView alors, au lieu d'étendre une ListActivity vous devez simplement étendre une Activity et devrait avoir le même id sans le mot clé Android .

23voto

Praveen Points 9516

Vous devriez avoir un listview dans votre mainlist.xml fichier avec l'id comme @android:id/list

<ListView
    android:id="@android:id/list"
    android:layout_height="wrap_content"
    android:layout_height="fill_parent"/>

15voto

Aamirkhan Points 1924
<ListView android:id="@android:id/list"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"/>

ceci devrait résoudre votre problème

7voto

Kevin Points 150

La façon exacte dont j'ai corrigé ceci est basée sur les commentaires ci-dessus puisque je n'ai pas réussi à le faire fonctionner au début :

activité_main.xml :

<?xml version="1.0" encoding="utf-8"?>
<ListView xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:id="@android:id/list"
>
</ListView>

MainActivity.java :

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

préférences.xml :

<?xml version="1.0" encoding="utf-8"?>
<PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android" >
<PreferenceCategory
    android:key="upgradecategory"
    android:title="Upgrade" >
    <Preference
        android:key="download"
        android:title="Get OnCall Pager Pro"
        android:summary="Touch to download the Pro Version!" />
</PreferenceCategory>
</PreferenceScreen>

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X