Как загрузить список элементов из массива в ListView - PullRequest
0 голосов
/ 22 февраля 2012

я пытаюсь загрузить список элементов из массивов ... я получаю ошибку во время выполнения

02-22 11: 22: 51.042: E / AndroidRuntime (1460): вызвано: java.lang.RuntimeException: Ваше содержимое должно иметь ListView, атрибут id которого 'android.R.id.list'

мой файл R.java

public final class R {
    public static final class attr {
    }
    public static final class drawable {
        public static final int ic_launcher=0x7f020000;
        public static final int icon=0x7f020001;
    }
    public static final class id {
        public static final int mylist=0x7f050000;
        public static final int next=0x7f050005;
        public static final int play=0x7f050004;
        public static final int prev=0x7f050003;
        public static final int seekbar=0x7f050002;
        public static final int selectedfile=0x7f050001;
        public static final int text1=0x7f050006;
    }
    public static final class layout {
        public static final int audiolist=0x7f030000;
        public static final int song_item=0x7f030001;
        public static final int songlist=0x7f030002;
    }
    public static final class string {
        public static final int app_name=0x7f040000;
    }
}

мой код:

@Override
public void onCreate(Bundle icicle) {
    try {
        super.onCreate(icicle);
      setContentView(R.layout.audiolist);

        ListView listView = (ListView) findViewById(R.id.mylist);
    String[] values = new String[] { "Android", "iPhone", "WindowsMobile"};
    ArrayAdapter<String> spinnerArrayAdapter = new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1, values);
listView.setAdapter(spinnerArrayAdapter);

    } catch (NullPointerException e) {
        Log.v(getString(R.string.app_name), e.getMessage());
    }
}

макет: аудиолист

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

    <ListView
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
         android:id="@+id/mylist"
        android:layout_weight="1.0"/>

    <LinearLayout
        android:orientation="vertical"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:background="@android:drawable/screen_background_light"
        android:padding="10dip">

        <TextView
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:id="@+id/selectedfile"
            android:text="Not file selected"
            android:textColor="@android:color/black"
            android:gravity="center_horizontal"
            android:singleLine="true"
            android:ellipsize="middle"/>

        <SeekBar
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:id="@+id/seekbar"
            android:max="100"
            android:paddingBottom="10dip"/>

        <LinearLayout
            android:orientation="horizontal"
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:gravity="center"
            android:background="@android:drawable/screen_background_light">

            <ImageButton
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:id="@+id/prev"
                android:src="@android:drawable/ic_media_previous"/>

            <ImageButton
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:id="@+id/play"
                android:src="@android:drawable/ic_media_play"/>

            <ImageButton
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:id="@+id/next"
                android:src="@android:drawable/ic_media_next"/>

        </LinearLayout>
    </LinearLayout>

</LinearLayout>

Ответы [ 2 ]

1 голос
/ 22 февраля 2012

Из справочника

ListActivity имеет макет по умолчанию, который состоит из одного полноэкранного списка в центре экрана.Однако, если вы хотите, вы можете настроить макет экрана, установив свой собственный макет представления с помощью setContentView () в onCreate ().Для этого ваше собственное представление ДОЛЖНО содержать объект ListView с идентификатором «@android: id / list» (или списком, если он в коде)

Вам придется либо изменить listview's ID по умолчанию или вам нужно использовать setContentView(...)

Обновление: Пример кода

Вы можете проверить учебник Vogella , этоВеликолепно показывает тебе шаг за шагом.Вы не можете потерпеть неудачу.

Обновление 2 Возможное решение Мое последнее предположение состоит в том, что ваша деятельность расширяется ListActivity, поэтому сборщик ищет список по умолчанию в качестве макета.Если так, то вместо этого используйте простое Activity и посмотрите ответ на этот вопрос: Как я могу реализовать ListView без ListActivity?(используйте только активность)

Удачи

0 голосов
/ 22 февраля 2012

Когда вы расширяете ListActivity и создаете listView, id ListView должен быть просто «list», а не mylist.

<ListView
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
         android:id="@+id/list"
        android:layout_weight="1.0"/>
...