2017-09-24 12 views
0

私はJavaScriptで行ったプロジェクトをJava(Android)に移植しようとしていますが、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メソッドにこれを適応させる方法がわからないようなものを試してみたかったですこれは2番目の期間の後にfindViewByIdコマンドで引用符が付いた "Identifier Expected"です。

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

UIコントロールのほとんどは、このプリンシパルに基づいて、私はこの作業を取得することができない場合、私は似た何かを必要とされました。

+4

はこの 'java'または' javascript'です:あなたはそれをidを与え、このようなことのインスタンスを取得する必要がありますか?彼らは「オーストリア」と「オーストラリア」とほぼ同じです。 –

+2

@JoeC OPがJavaScriptからJavaに書いた移植の振る舞いについて質問していることを、 – faintsignal

+0

あなたのforループは 'int j = 0;' '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です。 RelativeLayout,LinearLayout

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

関連する問題