İçeriğinizin id özelliği 'android.R.id.list' olan bir ListView'a sahip olmalıdır


156

Ben böyle bir xml dosyası oluşturduk:

<?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>

ve bir etkinlik:

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);
    }
}

Gördüğünüz gibi, ben başka bir şey yapmadım. Ama hatayı alıyorum:

İçeriğinizin id özelliği 'android.R.id.list' olan bir ListView'a sahip olmalıdır

Düz-se bile android:id="@+id/list"benim xml satır var .

Sorun nedir?

Yanıtlar:


345

ListView öğenizin kimliğini bu şekilde yeniden adlandırın,

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

ListActivityXml dosyanızı kullandığınız için bir kimliğe değinirken android anahtar sözcüğünü belirtmeniz gerekir .

Eğer özel bir ListViewdaha sonra a genişletmek yerine, ListActivitysadece bir uzatmak Activityzorunda ve android anahtar kelime olmadan aynı kimliğe sahip olmalıdır .


4
Bunu yapmak sorunumu çözdü, teşekkürler. Ama merak ediyorum bir ListView ne zaman "@android: id / list" kimliğine sahip olması gerektiği ve ne zaman rastgele bir ada sahip olmak için sorun olduğu konusunda birkaç kelime yazmak için nazik olup olmadığını merak ediyorum. Çünkü sadece sorunumu düzeltmekle kalmayıp, düzeltmenin neden gerekli olduğunu da anlıyorum.
RenniePet

4
İşler. Ama neden bu "oyunlar" kimliğine bağlı olarak gösteriliyor?
ses

1
Eklediğimde @android, Eclipse diyorlist cannot be resolved or is not a field
user83039 13:14

1
aynı sorun hatayı gösteriyor: Hata: Verilen adla eşleşen kaynak bulunamadı ('id' de '@android: id / list_interestsent' değeri ile).

1
Bu harika cevap için teşekkürler!
Brewology

23

mainlist.xmlDosyanızda kimliğine sahip bir liste görünümünüz olmalıdır .@android:id/list

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

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

bu probleminizi çözmeli


8

Tam olarak işe başlayamadım çünkü yukarıdaki geribildirim dayalı bu sabit:

activity_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);

preferences.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>

4

Devral Etkinlik Sınıf yerine ListActivity bu sorunu çözebilirsiniz.

public class ExampleActivity extends Activity  {

    @Override
    public void onCreate(Bundle savedInstanceState) {

        super.onCreate(savedInstanceState);

        setContentView(R.layout.mainlist);
    }
}

1
<ListView android:id="@id/android:list"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:drawSelectorOnTop="false"
        android:scrollbars="vertical"/>

0

Beni etkileyen başka bir şey: Birden fazla test cihazınız varsa, cihaz tarafından kullanılan düzende değişiklik yaptığınızdan emin olun. Benim durumumda, (mizanpaj yoluyla yarıya geçtim) büyük telefonumun "layout-sw360dp" dizininde xmls kullandığını bulana kadar "mizanpaj" dizininde xmls'de değişiklik yapmak için biraz zaman geçirdim. Hata!

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.