2017-05-05 120 views
0

我正在製作一個應用程序,其中我有一個具有底部導航欄和導航欄實施的活動。當我通過intent加載另一個活動時,它會加載頁面,但導航欄都會消失。但是,當我加載一個片段類時,同時顯示的導航條也起作用,頁面也加載。自定義列表視圖與片段中的自定義適配器

我已經實現了列表視圖與自定義適配器在一個avtivity擴展類,但我無法做到這一點的片段類。我見過很多教程,但他們都使用預定義的陣列適配器。我希望列表中的每一行都包含一個相對佈局。

任何幫助,將不勝感激。謝謝。

+1

有很多自定義'arrayAdapter'教程/示例,只是谷歌「android自定義arrayadapter」。 – DigitalNinja

+0

我有,但他們都爲活動擴展類工作。碎片甚至是互聯網上的碎片都很少,它們使用預定義的陣列適配器。請理解我的情況。 –

回答

1

是的。有很多方法,但我做的方式非常不同(我認爲這是多少)。您只需按照我列出的步驟操作即可。

步驟#1:將您的列表視圖代碼粘貼到您的xml文件中(如果您之前使用過它們,請刪除表格佈局,否則不用擔心)。另外,從你的xml中刪除滾動視圖,因爲它們會導致你的列表視圖出現問題。

第二步:通過將對象轉換成Java,並給予它通過findViewById其正確的ID初始化列表視圖

步驟#3:請您要爲每個自定義佈局爲您的列表視圖的列。例如,2個textviews相對佈局和圖片等等等等用你的想象力在這裏:P

步驟#4:由於碎片,你必須使用上下文或視圖變量給ID從XML變量的。爲此,我們從onCreateView方法三個對象,它們分別是:

public View onCreateView(LayoutInflater inflater, ViewGroup container, 
         Bundle savedInstanceState) 

做一個全局變量LayoutInflater並設置它等於這個吹氣,並使用全球吹氣初始化意見等。像這樣:

LayoutInflater global; 
global = inflater; 
view = global.inflate(R.layout.your_frag_id, container, false); 

步驟#5:對於自定義適配器,你必須給他們從他們得到的ID爲他們行的項目有不同的看法。在Activity擴展類中它很容易,但在Fragments中卻不是這樣。它是這樣做的。

public View getView(int i, View view, ViewGroup viewGroup) { 
    view = global.inflate(R.layout.your_seperate_xml_id_for_each_row_of_the_list_view, null);} 

步驟#6:現在,你可以只是簡單的添加使用listView.setAdapter函數的值。

相關問題