2011-11-01 43 views
3

請原諒問題標題,因爲我不確定要使用的正確用語。 我只是自己熟悉與ListView和我想要做的是這樣的:適用於Android版面的動態內容

-Suppose我有有字符串名稱字符串品種INT年齡的狗類。

- 然後我會創建Dog的許多實例,並將它們放入僅顯示其名稱的ListView中。

- 我也有一個佈局,可以說doginfo.xml,它具有文本「名稱:」,「品種:」和「年齡:」。

那麼如何讓點擊的項目(即:名稱,品種,年齡)的值顯示在下一個活動上,即doginfo.xml

回答

1

我假設你有一個你的狗的數組/列表,你將它們添加到你的列表視圖。看看這個〔實施例的onItemClickListener在android DOC:

http://developer.android.com/resources/tutorials/views/hello-listview.html

在點擊監聽要用「int位置」從您的陣列/ ArrayList中獲取對象。獲得此信息後,可以使用「bundle.putString()」和「b.getString()」在活動之間輕鬆傳遞它。

看看這個簡單的教程,瞭解有關活動之間傳遞數據:

http://thedevelopersinfo.wordpress.com/2009/10/15/passing-data-between-activities-in-android/

1

這很容易。一旦你有你的ListView,設置OnItemClickListener

listView.setOnItemClickListener(new OnItemClickListener() { 
    public void onClick(AdapterView<?> parent, View view, int position, long id) { 
     //Get your Dog object from the 'position' parameter you get here. 
     //You should save the 'Dogs' in an array, so you can access them here easily. 
     Dog d = mDogsArray[position]; 
     Intent intent = new Intent(YourActivity.this, DogInfoActivity.class); 
     intent.putExtra("name", d.getName()); 
     intent.putExtra("breed", d.getBreed()); 
     intent.putExtra("age", d.getAge()); 
     startActivity(intent); 
    } 
} 

如果你想添加/刪除動態狗,你可以使用的方法ListView.setListAdapter更改列表視圖中顯示的看法。創建陣列適配器是這樣的:

ArrayAdapter<String> dogs = new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1); 

,並添加狗是這樣的:

dogs.add(dogInfoString) 
+0

我設法得到現在這個工作,但有沒有辦法改變來自新活動的對象的值? – 10834346

+0

您的意思是,更改* actual * dogs數組中'DogInfoActivity'中顯示的狗的值?當然可以做到。 – Jong

1

讓我回答說,你需要遵循以下步驟:

  1. 創建的狗類的ArrayList對象ArrayList<DogClassObject>
  2. 現在在第一個活動中,只需從ArrayList中的每個對象中取出名稱並在ArrayList<String>中添加一個名稱。
  3. 使用ArrayList在第一個活動的ListView中顯示。

爲了實現這一點,通過這個例子:Android Simple ListView

現在,爲了落實點擊監聽,並顯示dog_info,執行下面的步驟:

  1. ListView控件內實現OnItemClickListener。
  2. 按照@Jong給出的答案,但傳遞從ArrayList中單擊的對象(您可以通過位置參數從ArrayList中獲取單擊的對象)。
  3. 獲取狗信息和顯示名稱,年齡,品種的dog_info 內部信息要實現這一點,通過這個例子:Android - Custom ListView with 2 TextViews
+0

我已經設法讓這個工作現在,但是有沒有辦法從新的活動更改對象的值? – 10834346