2013-08-21 61 views
1

喜歡可以說我有幾個佈局,我想他們之間的某種隨機選擇..試圖定義一個佈局動態

因此而不是使用靜態佈局的名字,如:

setContentView(R.layout.main_layout); 

return inflater.inflate(R.layout.main_layout, container, false); 

我會做這樣的事情:

public String layoutName = 'main_layout'; 
setContentView(R.layout[layoutName]); 
// OR 
return inflater.inflate(R.layout[layoutName], container, false); 

以上不起作用(在JS中它工作)

有沒有辦法用java來做到這一點。

回答

1
int resID = getResources().getIdentifier(layoutName,"layout", 
    getActivity().getPackageName());  
    setContentView(resID); 

或者

int resID = getResources().getIdentifier(layoutName,"layout", 
    getActivity().getPackageName());   
    View v = inflater.inflate(resID,container, false); 
+0

由於這個工作。似乎我有另一個問題,我不能定義一個片段類的構造函數,因此上述對我來說是非常有益的。謝謝 –

+0

你是什麼意思:「無法爲片段類定義構造函數」? –

+0

以及我想把這個:http://developer.android.com/training/basics/fragments/creating.html#Create Android,所以它會採取佈局的名稱,而不是預先定義它 –