158

次のような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="@+id/list" >
</ListView>

およびアクティビティ:

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

ご覧のとおり、私は他に何もしていません。しかし、私はエラーが発生しています:

コンテンツには、id 属性が「android.R.id.list」である ListView が必要です。

android:id="@+id/list"xmlに行がありますが。

何が問題ですか?

4

7 に答える 7

348

このように ListView の ID の名前を変更します。

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

ListActivityxml ファイルを使用しているため、ID に言及する際にキーワードandroidを指定する必要があります。

ListViewaを拡張する代わりにカスタムが必要な場合ListActivityは、単純に anActivityを拡張する必要があり、キーワードandroidなしで同じ ID を持つ必要があります。

于 2012-06-15T12:41:31.763 に答える
23

mainlist.xmlファイルに id を持つ 1 つのリストビューが必要です。@android:id/list

<ListView
    android:id="@android:id/list"
    android:layout_height="wrap_content"
    android:layout_height="fill_parent"/>
于 2012-06-15T12:41:45.710 に答える
15
<ListView android:id="@android:id/list"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"/>

これで問題が解決するはずです

于 2012-06-15T12:54:05.470 に答える
8

最初はうまくいかなかったので、上記のフィードバックに基づいてこれを修正した正確な方法:

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

プリファレンス.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>
于 2014-01-09T05:15:14.887 に答える
4

ListActivityの代わりにActivityクラスを継承すると、この問題を解決できます。

public class ExampleActivity extends Activity  {

    @Override
    public void onCreate(Bundle savedInstanceState) {

        super.onCreate(savedInstanceState);

        setContentView(R.layout.mainlist);
    }
}
于 2014-11-22T10:13:11.337 に答える
1
<ListView android:id="@id/android:list"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:drawSelectorOnTop="false"
        android:scrollbars="vertical"/>
于 2018-02-06T04:17:22.747 に答える