0

我嘗試創建的應用程序出現問題。過去幾天我做了大量的搜索,但我似乎無法弄清楚。3個列表視圖的自定義適配器

目標是在一個活動上有一個可擴展的列表視圖,該視圖總共有12個選項。點擊這12個選項中的每一個,都會使用戶看到相同的佈局,其中有3個選項卡(命名爲星期一,星期三,星期五)。每個選項卡都有一個列表視圖。這一切都適用於我的應用到目前爲止。現在,我希望我的自定義適配器使用不同的數據填充這3個列表視圖(我計劃將其硬編碼到應用程序中,而不是大量數據,因此不要放慢它),具體取決於可擴展列表視圖上的項目被點擊。

我遇到的問題是,我不知道如何讓自定義適配器知道Expandable ListView上的哪個項目被點擊,並且我不知道如何獲取該信息並填充三個不同的在三個不同的選項卡中的列表視圖與三個不同的數據集合。

數據非常簡單,它們都非常相似。每行將有3個文本框,其中一個包含一個單詞,另外一個包含數字。它也將有一個複選框

我已經制作了自定義適配器,但它們只用於單個列表視圖,而且我不必分離數據,因此它更容易。我不知道如何開始這一項,我試圖用谷歌搜索它已經空了。

任何幫助非常感謝,即使只是一個鏈接指向我在正確的方向將是很棒!謝謝!

回答

0

使用TabLayout + ViewPager組合創建3個不同片段的3個製表符。
然後在可訪問此TabLayoutViewPagerActivity中調用此項,然後使用自定義列表視圖動態添加選項卡。你去,一個簡單的解決方案。

0

您可以使用相同的CustomAdapter來填充所需的任何數據。因此,您可以在對象創建過程中動態設置數據,而不是對CustomAdapter中的數據進行硬編碼。

這樣,當您創建Adapter時,您將傳遞必須處理的數據。由於您的活動知道哪個可擴展列表項被點擊,您可以發送不同的數據到您的適配器。

public class MyCustomAdapter extends BaseAdapter { 
    private String [] dataToBePopulated; 

    public MyCustomAdapter(String [] data) { 
     dataToBePopulated = data; 
    } 

    @Override 
    public int getCount() { 
     return dataToBePopulated != null ? dataToBePopulated.lenght : 0; 
    } 

    // ETC.. 
} 

然後,當你創建適配器,您可以發送您要喜歡數據:

public class MainActivity extends Activity { 

    @Override 
    protected void onCreate(Bundle arg0) { 
     super.onCreate(arg0); 

     .... 

     ListView listView = (ListView) findViewById(R.id.ID_OF_LISTVIEW); 
     MyCustomAdapter listViewAdapter; 
     if(/* CONDITION 1 */) { 
      listViewAdapter = new MyCustomAdapter(new String[] {"Data1 for Condition 1", "Data2 for Condition 1", "Data3 for Condition 1"}) 
     } else if (/* CONDITION 2 */) { 
      listViewAdapter = new MyCustomAdapter(new String[] {"Data1 for Condition 2", "Data2 for Condition 2"}) 
     } else { 
      listViewAdapter = new MyCustomAdapter(new String[] {"Data1 for Condition 3"}) 
     } 

     listView.setAdapter(listViewAdapter); 

     ....    
    } 

} 
相關問題