2017-06-13 127 views
-3

這是一段代碼:如何將字符串變量轉換爲佈局變量?

int buttonXa = 0, buttonXb = 4, layoutNum = (buttonXb - 1); 
String layoutXNum = String.valueOf(layoutNum); 
String layoutX; 
LinearLayout layoutXab; 
do { 
    layoutX = "ll" + layoutXNum; 
    layoutXab = (LinearLayout)layoutX; 
    buildButtons(layoutXab, buttonXa, buttonXb); 
    buttonXa += 4; 
    buttonXb += 4; 
    layoutNum += 1; 
} while (buttonXa < 12); 

爲什麼沒有鑄造工作?什麼是正確的代碼?HI there @ J.Knight和其他人這段代碼試圖發送到「構建按鈕」功能,一個線性佈局,其名稱是動態構建在「do while」循環中,第一次佈局被稱爲ll3然後ll4等...該名稱已建成並放入一個字符串變量,但現在需要轉換爲線性佈局變量...感謝Emuna

+0

什麼是「鑄造」不工作?請顯示完整的代碼和錯誤消息。 –

+0

這兩個類的層次結構有什麼關係,爲什麼你要它工作? – Shadov

+0

你究竟想要完成什麼?我可以想到你可能在這裏嘗試做的幾件不同的事情,以及不能這樣做的原因,但是我會通過解釋每種情況來浪費時間。鑄造不是那裏的問題,你手上有更大的問題。 –

回答

0

變量layoutX是'串'。
變量layoutXab的類型爲'LinearLayout'

'LinearLayout'不是'String'的子類型,'String'也不是'LinearLayout'的子類型。

鑄造是一種專門化或概括類型的方法,這兩種類型都不是另一種的專門化。

0
//Get the ID for R.layout.button1 
int resID = context.getResources().getIdentifier("button1", "layout", context.getPackageName()); 
//context could be an object of Activity too 

請記住,這種方式比直接使用的資源ID, 尤其是當你有幾百個這樣的ID從字符串轉換 爲int慢。

更多關於資源參考此鏈接https://developer.android.com/reference/android/content/res/Resources.html

相關問題