2017-02-22 3 views
0

新しいAndroid/Javaコーダー。私はMS-Accessで構築したプロジェクトをAndroidアプリで複製しようとしています。Java - 動的にテキストビューIDを作成する

私はなどtext10、text12、同様にMS-Accessでは、私は動的に収集参照してそれらの名前を構築することができ、同様の名前のTextViewsとレイアウトを持っている:

For X = 10 To 15 
    Me.Controls("text" & X) = Null 
Next 

何の配列必要はありません。 javaのどの構造体が同じ機能を果たすことができますか?

+0

によってTextViewは、要素の配列またはリストを使用して見つけることができます。あなたが話しているようにそれをすることができたとしても、それはひどい考えです。 Javaのアクセスプログラミングスタイルに従わないでください。もう誰もVBAを使用しない理由がある – nhouser9

+0

いつか私はこれを学びますが、xmlレイアウトで定義されたTextViewsで配列を満たす方法を明確に説明することはできません。 – June7

答えて

2

実行時にres名からres idを取得できます。あなたのTextViewにid「テキスト1」を持っていたのであれば、あなたが使用して整数のIDを取得することができます:

int id = getResources().getIdentifier("text1", "string", getPackageName()); 
TextView view = findViewById(id); 

をしかし、最後の手段としてのみそう、それはややアンチパターンのエラーが発生しやすく、ゆっくりとします。

OPによる編集:名前引数が常に0を返しますが、答えとしてマークされているため、次のコードが正しく動作し、アンチパターンであるかどうかがわかります。
TextView v = (TextView) findViewById(getResources().getIdentifier("tv" + a[i], "id", getPackageName()));

0

代わりのTextViewIdフィールドにそのTagフィールドを使用します。 tag instanceof String

String tag = (String)textView.getTag()textView.setTag(Object tag)あなたがTag

+0

ちょうどエラーが発生します: 'textView'シンボルを解決できません – June7

+0

あなたは深刻ですか? textViewは単なる変数名ですが、明らかに独自のものを使用する必要があります。 – CrowsNet

+0

はい、私はそれを理解した後、宣言して開始しようとしましたが、どちらもうまくいきませんでした。私はそれを何にするだろうか? Timo Ohrさんの返信がこの問題を解決したので、今は疑問です。しかし、努力をいただき、ありがとうございます。 – June7

関連する問題