如何将字符串变量转换为布局变量?

时间:2017-06-13 03:21:34

标签: java android string layout casting

这是代码部分:

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有@J.Knight和其他任何其他这段代码试图发送到“构建按钮”功能,一个线性布局,其名称是在“do while”循环中动态构建的,第一次布局被称为ll3然后ll4等等......名称被构建并放入一个String变量,但现在需要转换为线性布局变量...感谢Emuna

2 个答案:

答案 0 :(得分:0)

变量<%String notify = (String)request.getAttribute("soccerAvailable");%> <div id="ply_notify" class="col-md-3 col-sm-3"> <label for="notify"><core:out value="${playerrecord.notify}" /> </label> </div> 的类型为'String'。
变量layoutX的类型为'LinearLayout'

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

Casting是一种专门化或推广类型的方式,这两种类型都不是另一种类型的专业化。

答案 1 :(得分: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来转换为String时   到int。

有关资源的更多信息,请参阅此链接https://developer.android.com/reference/android/content/res/Resources.html