2011-12-07 48 views
0

我在嘗試在列表視圖中顯示文本時發現一些問題。運行android模擬器時未顯示ListView項目

在ListView類的代碼是:

package org.practical.newsupdate; 

    import android.os.Bundle; 
    import android.widget.ArrayAdapter; 
    import android.widget.ListView; 

    public class MenuView extends NewsfeedApp2Activity { 

     public void onCreate(Bundle savedInstanceState){ 

      super.onCreate(savedInstanceState); 

    ListView menuList = (ListView) findViewById(R.id.menuview); 
    String[] items = getResources().getStringArray(R.array.menu_array); 

    ArrayAdapter<String> adapt = new ArrayAdapter<String>(this, 
      R.layout.menuview, items); 
    menuList.setAdapter(adapt); 

    } 
    } 

爲main.xml中的代碼是:

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

    <RelativeLayout 
     android:id="@+id/relativeLayout1" 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" > 

    <TextView 
     android:id="@+id/ScreenTitle" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_alignParentTop="true" 
     android:layout_centerHorizontal="true" 
     android:text="ScreenTitle" /> 

    <ImageView 
     android:id="@+id/imageView1" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_alignParentLeft="true" 
     android:layout_alignParentTop="true" 
     android:src="@drawable/ic_launcher" /> 

    <ImageView 
     android:id="@+id/imageView2" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_alignParentRight="true" 
     android:layout_alignParentTop="true" 
     android:src="@drawable/ic_launcher" /> 

</RelativeLayout> 

<ListView 
    android:id="@+id/MenuView" 
    android:layout_width="fill_parent" 
    android:layout_height="fill_parent" 
    android:layout_weight="0.88" android:visibility="visible"> 
</ListView> 

<ImageView 
    android:id="@+id/Picture" 
    android:layout_width="match_parent" 
    android:layout_height="wrap_content" 
    android:src="@drawable/ic_launcher" /> 

</LinearLayout> 

用於string.xml文件中的代碼是:

<?xml version="1.0" encoding="utf-8"?> 
<resources> 

<string name="hello">Hello World, NewsfeedApp2Activity!</string> 
<string name="app_name">NewsfeedApp2</string> 
<string name="ScreenTitle">ScreenTitle</string> 
<string-array name="menu_array"> 
    <item>NewsPage</item> 
    <item>Settings</item> 
    <item>Help</item> 
    <item>About</item> 
</string-array> 

</resources> 

主java文件的代碼是:

package org.practical.newsupdate; 

import android.app.Activity; 
import android.os.Bundle; 

    public class NewsfeedApp2Activity extends Activity { 
@Override 
    public void onCreate(Bundle savedInstanceState) {  
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.main); 
}  
} 

併爲menuview.xml文件的代碼是:

<?xml version="1.0" encoding="utf-8"?> 
<TextView xmlns:android="http://schemas.android.com/apk/res/android" 
    android:id="@+id/menuview" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:text="TextView"/> 

AndroidManifest.xml文件具有下面的代碼:

<?xml version="1.0" encoding="utf-8"?> 
<manifest xmlns:android="http://schemas.android.com/apk/res/android" 
package="org.practical.newsupdate" 
android:versionCode="1" 
android:versionName="1.0" > 

<uses-sdk android:minSdkVersion="14" /> 

<application 
    android:icon="@drawable/ic_launcher" 
    android:label="@string/app_name" > 
    <activity 
     android:label="@string/app_name" 
     android:name=".NewsfeedApp2Activity" > 
     <intent-filter > 
      <action android:name="android.intent.action.MAIN" /> 

      <category android:name="android.intent.category.LAUNCHER" /> 
     </intent-filter> 
    </activity> 
    <activity android:name="MenuView"></activity> 
    <activity android:name="About"></activity> 
    <activity android:name="Help"></activity> 
    <activity android:name="NewsPage"></activity> 
    <activity android:name="Settings"></activity> 



</application> 

</manifest> 

有人能幫助我嗎?

非常感謝

回答

0

您正在使用一個ArrayAdapter(上下文的背景下,INT textViewResourceId,T []對象)構造函數,期望作爲第二個參數文本視圖中顯示數據的ID,但是你給它menuview.xml佈局的id。你或許應該使用一個ArrayAdapter(上下文的背景下,INT資源,INT textViewResourceId,T []對象)構造函數,例如:

ArrayAdapter<String> adapt = new ArrayAdapter<String>(this, 
    R.layout.menuview, 
    R.id.menuview, 
    items); 

它告訴你的適配器:

  1. 使用您的menuview。 XML佈局列表中的每個項目,
  2. 在menuview.xml佈局,使用視圖ID爲menuview顯示的數據

這可能不是很清楚,你用「菜單視圖「作爲佈局的名稱和視圖裏面的ID ...

編輯:也作爲您的ListView的id。這可能不會影響Android,但這不利於您的代碼清晰度:)