2016-08-15 5 views
0

私はリストオブジェクトに追加したテキストビューの数があり、プログラムでそれらを初期化したいと考えています。私はこれをどのようにして行うのですか?最高のオブジェクトがリストされていますAndroidリストの割り当て

マイコードです。リストに追加されたオブジェクトを表示します。

mTextViewList = new ArrayList<TextView>(); 
     mTextViewList.addAll(Arrays.asList(mTextViewA, mTextViewB, mTextViewC, mTextViewD)); 
     String TAG_ID= "id"; 

これは私がオブジェクトをリストに追加するとき

//Single line assignment works. 

mTextViewA = (TextView) findViewById(getResources().getIdentifier("textViewA",TAG_ID, getPackageName())); 
mTextViewB = (TextView) findViewById(getResources().getIdentifier("textViewB",TAG_ID, getPackageName())); 

にこのdoesntの作業を行うにしようとしています何で、ループ内で使用

//Forloop doesnt work 
     for (int i=0; i<mTextViewList.size(); i++) { 

      //System.out.println(list.get(i)); 
      mTextViewList.get(i) = (TextView) findViewById(getResources().getIdentifier("textViewName",TAG_ID, getPackageName())); 
     } 
+0

ループコードは意味がありません。あなたがループを使わずにしようとしていることを示してください。 – shmosel

+0

私はテキストビューにリソースを割り当てようとしています。たとえば、上記の1行の割り当てが機能します。しかし、リストオブジェクトに追加してforloopで使用するとうまくいきません。 – user2202098

+0

1行の割り当ては意味がありますが、ループはありません。メソッドに値を代入することはできません。ループする代わりに各ステップを指定した場合、コードがどのように表示されるかを示してください。 – shmosel

答えて

0

以下がより理にかなって:

mTextViewList = new ArrayList<>(); 
for (int i = 0; i < mTextViewList.size(); i++) { 
    TextView textView = (TextView) findViewById(getResources().getIdentifier("textViewName", TAG_ID, getPackageName())); 
    mTextViewList.add(textView); 
} 
+0

しかしこれは、textViewという名前のリスト内の各varで終わるでしょうか?私は、各XMLView内の異なるビューの名前を付けた各textViewを持っています。 – user2202098

+0

変数をListに格納しないで、オブジェクトを格納します。 TextViewごとに変数を設定する場合は、IDごとに手動でViewById()を実行する必要があります。 – Egor

0

yアイテムのリストをTextViewに設定しようとしていますが、名前は連続した文字で終わります。これを試してみましょう:

mTextViewList = new ArrayList<>(); 
int viewCount = ???; // not sure how many elements you have 
for (int i = 0; i < viewCount; i++) { 
    String name = "textView" + (char)('A' + i); 
    TextView textView = (TextView) findViewById(getResources().getIdentifier(name, TAG_ID, getPackageName())); 
    mTextViewList.add(textView); 
} 
+0

これはありがたいことですが、残念ながら逐次文字は一例にすぎません。私はちょうどそれらすべてを個別に入力して初期化する必要があるかもしれません – user2202098

+0

@ user2202098もしそれらがすべてカスタム名であれば、ループは本当にあなたのために働くつもりはありません。ルーピングは、パターンがいくつかある場合にのみ機能します。 – shmosel

+0

ああ、リストオブジェクトには変数名が格納されていませんか?私はちょうど0からxまでループし、各textViewの名前をつかんで、同じ名前のxmlリソースを見つけて初期化する必要があった – user2202098