2011-10-06 36 views
0

我不知道這是否可能,是否有可能使用它的id來充氣listview?謝謝。Android:使用它的android充氣listview:id

+0

我想你應該只膨脹_layouts_即'ViewGroup's。也許你想要的是將視圖的可見性從GONE設置爲VISIBLE? –

+0

謝謝勞倫特。是的,我試圖膨脹一個XML文件。這樣可行。但是,當我嘗試擴展使用此文件中的根佈局的標識,一切都失敗。 – OckhamsRazor

+0

從doc判斷,似乎id必須是一個xml文件。不是視圖。你能告訴我們爲什麼你需要這個來幫助找到另一種解決方案嗎? –

回答

0

是的,佈局inflater inflates任何視圖從資源ID。

LayoutInflater inflater = (LayoutInflater)context.getSystemService 
     (Context.LAYOUT_INFLATER_SERVICE); 
listView = inflater.inflate(R.id.your_listview, parentView); 

編輯:嗯,它必須是一個佈局ID引用一些XML佈局,而不是它的組成部分。爲什麼不創建一個包含你想要提取的視圖組件的新XML?

+0

謝謝里諾。但是,它表示資源類型無效。 – OckhamsRazor

+0

好嗎?引用文檔:要加載的XML佈局資源的資源ID(例如,R.layout.main_page)' –

+0

資源ID必須是佈局xml文件。然而,我想只擴展一個更大的XML文件中的特定佈局。 – OckhamsRazor

2

我想你可能會對組件ID和佈局ID之間的區別感到困惑。

佈局ID引用佈局XML文件的名稱。例如,如果您有一個名爲res/layout/home_activity.xml的佈局,其ID將被存儲爲R.layout.home_activity

組件ID是指現有佈局內的UI組件的標識。因此,在home_activity.xml佈局中,您可能有<TextView android:id="@+id/my_textview" />。該視圖的ID是R.id.my_textview

您只能使用佈局ID對佈局進行充氣。 「膨脹」組件ID沒有任何意義,除非您將佈局作爲具有特定ID的View的子元素膨脹。

+0

感謝戴夫。這真的有助於消除我的困惑。但是你知道我怎樣才能「使用特定的ID將視圖的子元素充滿視圖」?一個例子真的有幫助。 – OckhamsRazor

+0

好吧,假設你已經有了一個(例如)'LinearLayout'的引用,我們稱之爲'root'。並且說你剛剛膨脹了一個佈局,所以你現在有一個名爲'myInflatedLayout'的'View'。你可以做'root.addView(myInflatedLayout)'。 – Dave

1

現在事情比較清楚,我建議你使用設置你的「充氣的ListView」在你的版式文件gone

<ListView android:visibility="gone" ... /> 

然後,只需將它設置爲可見使用View.setVisibility()每當你想要它「充氣'

mHiddenListView.setVisibility(View.VISIBLE);