1)你有你ArrayList:
main_list
2.)在你的XML文件(比如main.xml)中創建一個ListView並獲取其ID。也就是說,給定:
<?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 xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/liveFeed"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
/>
</LinearLayout>
做這樣的事情:
ListView livefeed = (ListView)this.findViewById(R.id.liveFeed);
你的活動範圍內(如果你在別的地方,如OnClickListener是,取代「本」與查看變量作爲一個變量傳遞給OnClickListener)。
3.)定義ArrayAdapter。請注意,它的一個參數(在你的案例中的第三個參數)將是一個TextView ID。這是因爲默認情況下,ArrayAdapter類在ListView中返回一個TextView。如果您重寫ArrayAdapter類,則可以使用自定義佈局在ListView中使用自定義視圖的項目,但對於您在問題中概述的內容而言,這不是必需的,而且您似乎已經掌握了它。
4)設置適配器到ListView(給予ArrayAdapter評爲「AA」):
livefeed.setAdapter(aa);
現在一個ArrayAdapter的工作原理是它調用每個對象的toString()方法的方式,並設置每個TextView的中ListView到這個String。因此,請在你的對象的類的toString()方法返回其名稱屬性:
public String toString(){return name;} //assuming name is a String
還要注意的是,如果添加對象到ArrayList,通知你,因此它可以相應地與更新您的ListView一個ArrayAdapter修改(給定ArrayAdapter命名爲'aa'):
aa.notifyDataSetChanged();
讓我知道你是否需要任何幫助。像往常一樣,檢查答案複選標記是否回答了您的問題。
另外請注意,有一點你可能希望交叉引用你的活動和對象類之間的ArrayAdapter和ArrayList。將這些字段設置爲靜態是非常有用的。
編輯:
你想也知道如何當你點擊在ListView訪問項目的特定對象。這(給你的ListView名爲livefeed):
livefeed.setOnItemClickListener(new OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> a, View v, int position, long id) {
//in here you may access your Object by using livefeed.getItemAtPosition(position)
//for example:
Object current = livefeed.getItemAtPosition(position);
//do whatever with the Object's data
}
});
真棒,所以我重寫我的對象的toString()方法,並在列表視圖顯示名稱偉大的工作。現在我仍然困惑的是如何訪問選定的listviewitem(object)的屬性(名稱,url,其他屬性)並說,將它們傳遞給另一個活動?任何幫助將不勝感激:) – jsw 2011-05-25 11:22:15
很高興幫助!所以,據我瞭解,每個對象都有一個URL,並且您希望ListView中的每個項目打開瀏覽器到該URL onClick的權利?另請注意,對象的屬性仍然完好無損。所有的對象仍然在你的ArrayList中。 – Vinay 2011-05-25 11:25:14
好吧,我試圖在示例中簡化它,但每個對象都有一個名稱,URL,描述和圖像。然後我想要將這些數據傳遞給另一個將顯示它的活動:)所以我相當確定我只是需要將它作爲意圖額外傳遞,但是我不確定如何從onClick方法訪問該對象。對不起,你可以告訴我剛剛開發android開發:) – jsw 2011-05-25 11:27:54