2017-09-24 67 views
0

我试图将我在JavaScript中执行的项目移植到Java(Android)中,并且我很难找出如何在JS和JS中执行不同的Java和Android Studio中的某些操作。 现在我想弄清楚如何做到这一点,我在原来的JS程序中利用了我用来让我循环每个文本标签的命名约定。使用级联字符串

for(var i = 0; i <= 5; i++) 
    { 
     for(var j = 0; j <= 5; j++) 
     { 
      setText("lbl" + i + j, text); 
     } 
    } 

如果我有label00 - label12,这可以遍历所有的人,并设置相应的文字,但我不知道如何将这种适应Android的Studio.I中的setText方法想尝试一些像这个,但是它说的是“Identifier Expected”,其中findViewById命令在第二个时间段之后有引号。

TextView lblID = (TextView) findViewById(R.id."lbl" + i + j); 
    lblID.setTextColor(Color.parseColor("#186cb3")); 

大部分的UI控件正是基于这一原理,所以我需要类似的东西,如果我不能得到这个工作。

+4

这是'java'或'javascript'?它们与“奥地利”和“澳大利亚”大致相似。 –

+2

@JoeC通过阅读OP询问关于他们在JavaScript中写入Java的移植行为的问题看起来很清楚。 – faintsignal

+0

你的for循环应该是'int j = 0;'not''var j = 0;'' –

回答

2

这绝对不是您从JavaScript移植到Android(使用Java)的正确方法。 findViewById()方法用于使用指定的id在屏幕的根布局上查找某个视图,但不用于设置文本。您需要动态地创建一个新的TextView

TextView textView = new TextView(); 
textView.setText("lbl" + i + j); 
setTextColor(parseColor("#186cb3")); 

然后TextView的添加到您的布局的父视图:

parentView.addView(textView); 

parentView通常viewGroup是你的活动布局文件如。 RelativeLayoutLinearLayout。你需要给它一个id并得到这样的一个实例:

RelativeLayout parentView = (RelativeLayout) 
    findViewById(R.id.parent_view_id); 
+0

给你+1的解释 – mrid

+0

我不认为我需要创建textViews。我已经在布局编辑器中创建了所需的所有东西,并且我想快速访问和更改所有这些东西,所以我想要像在JS中那样做,但无法如何。 – RhythmicChaos

+0

哦,我看到了,如果你已经在布局中有了它们,那么你应该通过使用'findViewById(R.id.text_view_id)'来获得你的活动中的实例: 'TextView textView =(TextView)findViewById(R。 id.text_view_id); textView.setText(text);' – danijax