2013-04-30 45 views
2
public class ListPage extends ListActivity 
{ 

ListView months; 
ArrayAdapter my; 
String[] monthlist = {"jan", "feb", "mar", "apr", "may", "jun", "jul", "aug", "sept", "oct", "nov", "dec"}; 

protected void onCreate(Bundle savedInstanceState) 
{ 
    super.onCreate(savedInstanceState); 
    requestWindowFeature(Window.FEATURE_NO_TITLE); 
    setContentView(R.layout.list_page); 

    months = (ListView)findViewById(R.id.list); 

    my = new ArrayAdapter(this,android.R.layout.simple_list_item_1,monthlist); 

    months.setAdapter(my); 
} 

}如何使用intent啓動ListActivity?

我試着推出從另一個活動這個ListActivity,但剛開錯誤「8月4日至三十○日:如果我改變extends ListActivityextends Activity,該

E/AndroidRuntime(2010): java.lang.RuntimeException: Unable to start activity 
ComponentInfo{com.example.listinflator_demo/com.example.listinflator_demo. 
ListPage}: java.lang.RuntimeException: Your content must have a ListView 
whose id attribute is 'android.R.id.list'" 

:30:45.234代碼工作就好了我如何使它工作使用extends ListActivity ??

+1

您的內容必須有一個ListView其id屬性爲「android.R.id.list」「 – njzk2 2013-04-30 08:47:02

回答

0

ListActivity有一個默認佈局,它由屏幕中央的單個全屏列表組成。但是,如果您願意,可以通過在onCreate()中使用setContentView()設置您自己的視圖佈局來自定義屏幕布局。要做到這一點,你自己的觀點必須包含id爲一個ListView對象「@android:ID /列表」(或列表,如果它在代碼)

所以在您的list_page.xml添加android:id="@android:id/list"在列表視圖

像:

<ListView android:id="@android:id/list" 
       android:layout_width="match_parent" 
       android:layout_height="match_parent" 
       android:background="#00FF00" 
       android:layout_weight="1" 
       android:drawSelectorOnTop="false"/> 

查看此link瞭解更多詳情。這裏是example


編輯:

如果你使用ListActivity那麼你的代碼將是:

public class ListPage extends ListActivity 
{ 


ArrayAdapter my; 
String[] monthlist = {"jan", "feb", "mar", "apr", "may", "jun", "jul", "aug", "sept", "oct", "nov", "dec"}; 

protected void onCreate(Bundle savedInstanceState) 
{ 
    super.onCreate(savedInstanceState); 
    requestWindowFeature(Window.FEATURE_NO_TITLE); 
    setContentView(R.layout.list_page); 



    ArrayAdapter<String> adapter = new ArrayAdapter<String>(this, 
    android.R.layout.simple_list_item_1, monthlist); 
    setListAdapter(adapter); 
} 
+0

」個月=(ListView控件)findViewById(R.id.list);「 現在這行顯示一個錯誤,說」列表不能解決或不是一個字段「 我現在要做的? – 2013-04-30 08:52:36

+0

接受此爲答..... – 2013-04-30 09:28:17

1

你的錯誤清楚地表明:

E/AndroidRuntime(2010):java.lang.RuntimeException:無法啓動活動ComponentInfo {com.example.listinflator_demo/com.example.listinflator_demo.ListPage}:java.lang.RuntimeException:您的內容必須有一個ListView id屬性是「android.R.id.list」」

確保在XML版式文件:list_page您正在設置爲contentView你以ID定義的ListView對象Activitylist

0

我認爲你必須使用字符串類型的ArrayAdapter,因爲你已經使用字符串陣列來存儲月份

ArrayAdapter<string> my = new ArrayAdapter<string>(this,android.R.layout.simple_list_item_1,monthlist); 

PS :: 刪除一個ArrayAdapter申報開始,而您對上面有以下變化

相關問題