2

我剛剛開始編碼的Android,但我努力讓我的頭繞過列表視圖。Android更復雜的ListView教程

例如,我需要了解如何在第一個列表視圖中單擊項目時顯示另一個列表視圖。另外我怎樣才能在列表視圖中點擊某個項目時顯示一個文本視圖。

如果有人知道任何好的教程或例子,請讓我知道。

非常感謝

+0

你需要告訴我們它應該看起來像... fx ..您可以使用ListView/TextView顯示下一個Activity,或者您可以構建包含2個ListView的Layout,以及用戶單擊第一個第二個ListView顯示列表(取決於第一個選擇) – Selvin 2011-06-14 09:31:38

回答

7

下面爲大家介紹一些鏈接正在尋找。先進的,但如果你堅持下去,不要放棄這一點,你會學到很多!請看:

Android: ListView elements with multiple clickable buttons

Android custom list item with nested widgets

+0

上面的鏈接對於訪問和發佈答案的所有人都非常酷。有很多東西需要學習,它會讓你的眼睛更清晰地看到更多的潛力。我使用這些覆蓋基本適配器的方法構建幾乎所有列表,因爲它創建了具有無限可能性的自定義UI。希望能幫助到你。 – trgraglia 2011-06-14 09:37:47

1

我不知道有什麼好的教程,但是對於第一個問題你問:

「我需要了解我該怎麼讓另一個列表視圖中的一個項目,當點擊第一個列表視圖「。

我假設你想在相同的活動中保持相同的列表視圖。所以只需更改列表視圖的適配器。如果它是基於光標的,不要忘記管理你的光標。一旦切換到新適配器,請致電

notifyDatasetChanged() 

刷新視圖的適配器方法。

關於第二個問題「另外我怎樣才能顯示一個文本視圖,當點擊一個列表視圖中的項目。」,這對我來說太模糊了。你想做什麼 ?直接編輯列表項目,彈出一個包含編輯文本的對話框?

問候, 斯特凡

2

比如我需要了解一個項目時,點擊我如何展示另一個列表視圖>第一個列表視圖。另外我怎樣才能在列表視圖中點擊某個項目時顯示一個文本視圖。

在android和java中,您也可以使用listener來監聽事件。在你的情況下,你需要知道用戶何時點擊一個項目,所以你需要一個onclicklistener,它會用另一個listview調用另一個activity。 對於點擊 的文本視圖,我想你想說的吐司,這是在屏幕底部的一種通知。

鏈接與很好的例子:http://developer.android.com/guide/topics/ui/ui-events.html

2

感謝所有的環節大家,非常有用!

我已經解決了我需要做的事情,它可能是非常粗糙和低效的,但它起作用,直到我至少學到更多。

這使我可以將幾種不同的視圖類型連接在一起。

package com.android.AndroidViews; 

import android.app.ListActivity; 
import android.content.Intent; 
import android.os.Bundle; 
import android.view.View; 
import android.widget.AdapterView; 
import android.widget.AdapterView.OnItemClickListener; 
import android.widget.ArrayAdapter; 

public class AndroidViews extends ListActivity { 
    @Override 
    public void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setListAdapter(ArrayAdapter.createFromResource(getApplicationContext(), 
       R.array.list_titles, R.layout.list_item)); 

     getListView().setOnItemClickListener(new OnItemClickListener() { 
      @Override 
      public void onItemClick(AdapterView<?> parent, View view, 
         int position, long id) { 
        switch(position) 
        { 
         case 0: Intent newActivity = new Intent(AndroidViews.this,LinearView.class); 
           startActivity(newActivity); 
           break; 
         case 1: Intent newActivity1 = new Intent(AndroidViews.this,List2.class); 
           startActivity(newActivity1); 
           break; 
        } 
       } 
     }); 
    } 
}