Android 如何将项目列表从数组加载到ListView

Android 如何将项目列表从数组加载到ListView,android,android-listview,android-mediaplayer,Android,Android Listview,Android Mediaplayer,我正在尝试从数组加载项目列表。。。我得到运行时错误 02-22 11:22:51.042:E/AndroidRuntime(1460):原因:java.lang.RuntimeException:您的内容必须具有id属性为“android.R.id.list”的ListView 我的R.java文件 public final class R { public static final class attr { } public static final class dra

我正在尝试从数组加载项目列表。。。我得到运行时错误

02-22 11:22:51.042:E/AndroidRuntime(1460):原因:java.lang.RuntimeException:您的内容必须具有id属性为“android.R.id.list”的ListView

我的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());
    }
}
@覆盖
创建公共空间(捆绑冰柱){
试一试{
超级冰柱;
setContentView(R.layout.audiolist);
ListView ListView=(ListView)findViewById(R.id.mylist);
字符串[]值=新字符串[]{“Android”、“iPhone”、“WindowsMobile”};
ArrayAdapter spinnerArrayAdapter=新的ArrayAdapter(这是android.R.layout.simple\u list\u item\u 1,值);
setAdapter(spinnerrayadapter);
}捕获(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>

当您扩展ListActivity并创建listView时,listView的id应该是“list”而不是mylist

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

来自

ListActivity具有由单个, 屏幕中央的全屏列表。但是如果你愿意的话,, 您可以通过设置自己的视图布局来自定义屏幕布局 在onCreate()中使用setContentView()。要做到这一点,你必须有自己的观点 包含一个id为“@android:id/list”的ListView对象(如果需要,则为list) 它在代码中)

您必须将
listview'
s id更改为该默认值,或者需要使用
setContentView(…)

更新:代码示例

你可以检查,这是一个伟大的显示你一步一步。你不能失败

更新2可能的解决方案 我最后的猜测是,您的活动扩展了
ListActivity
,因此构建器正在寻找一个默认列表作为布局。如果是,请改用简单活动,并查看此问题的答案:


祝你好运

你应该看看:我改成了
列表
,但仍然得到了错误:02-22`E/AndroidRuntime(1530):原因:java.lang.RuntimeException:你的内容必须有一个id属性为“android.R.id.list”的ListView`应该是android.R.id.list而不是你的.package.R.id.list。。。所以这个答案是错误的。。先看评论这很好one@Selvin:我尝试了
ListView ListView=(ListView)findViewById(android.R.id.list)在引用中仍然得到相同的错误,它从联系人填充ListView,但我有我自己的数组,我想从中填充,就像我在上面的代码中一样。。。有什么帮助吗?1)没有,没有联系人列表。2) 你从哪里来是无关紧要的。但是我看到你很困惑,所以我会更新我的代码。如果你想要更多的答案,我建议你用最新的XML和代码更新你的问题。谢谢Zortkun,是的,我想我迷路了:),…所以在我进入记事本教程之前,让我问你一下,。。。。为了修复我的代码,我需要什么更正?我想从一个非常简单的例子开始,比如我正在尝试的是在我的listview中加载arraylist,但不确定是什么导致我的应用程序崩溃。。。