2017-09-24 69 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