2012-02-22 53 views
-1

我試圖加載從陣列中物品的列表...我得到運行時錯誤如何從Array的產品清單加載到ListView控件

11月2日至22日: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()); 
    } 
} 

佈局:audiolist

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

你應該看看這個:http://stackoverflow.com/questions/3040374/runtime-exception-listview-whose -id-attribute-is-android-r-id-list – 2012-02-22 16:32:43

+0

不能解決我的問題 – 2012-02-22 17:07:38

回答

1

reference

ListActivity has a default layout that consists of a single, full-screen list in the center of the screen. However, if you desire, you can customize the screen layout by setting your own view layout with setContentView() in onCreate(). To do this, your own view MUST contain a ListView object with the id "@android:id/list" (or list if it's in code)

你會要麼必須在listview'的ID更改爲默認或者你需要使用setContentView(...)

更新:代碼示例

你可以檢查the tutorial of Vogella,這是一個偉大的顯示你一步一步EP。你不能失敗。

更新2可能的解決方法 我最後的猜測是,你的活動來延長ListActivity所以建設者正在尋找一個默認列表作爲佈局。如果是這樣,使用簡單的活動,而不是看看這個問題的答案:How can I implement a ListView without ListActivity? (use only Activity)

好運

+0

在您的參考其填充ListView從聯繫人,但我有我自己的數組,我想從中填充,因爲我有我的上述代碼...任何幫助? – 2012-02-22 18:26:15

+0

1)不,它沒有列出聯繫人。 2)從哪裏填充是無關緊要的。但我看到你很困惑,所以我會更新我的代碼。如果你想要更多的答案,我建議你用最新的XML和代碼狀態更新你的問題。 – 2012-02-22 18:32:21

+0

謝謝Zortkun,是的,我認爲我迷路了:),.....因此,在我進入記事本教程之前讓我問你,爲了修復我的代碼,我需要什麼修正?我想開始非常簡單,就像我想要做的只是在我的列表視圖中加載數組列表,但不知道是什麼導致崩潰我的應用程序... – 2012-02-22 18:38:27

-1

當你擴展ListActivity和創建ListView控件,ListView控件的ID應該只是 「表」 不MYLIST。

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

我改成'list',但仍然收到錯誤:02-22'E/AndroidRuntime(1530):引起:java.lang .RuntimeException:你的內容必須有一個ListView,它的id屬性是'android.R.id.list'' – 2012-02-22 17:06:43

+0

應該是android.R.id.list而不是your.package.R.id.list ...所以這個答案是錯誤..閱讀第一條評論這是一個好的 – Selvin 2012-02-22 17:36:36

+0

@Selvin:我試過'ListView listView =(ListView)findViewById(android.R.id.list);'仍然得到相同的錯誤 – 2012-02-22 18:09:53