1

こんにちは私はで値を設定しましたArrayList。どうすればその値をさまざまなテキストビューに保存できますか。

例えば:

ArrayList<String> mylist =new ArrayList<String>();
for(int i=0;i<mylist.size();i++)
{
    //Here mylist contains 10 values and I have 10 different textviews. Now How can i add values 1 to 10 in different textview. set value to First textview 1,second textview to 2 etc.
}

これを見つけるのを手伝ってください。

4

7 に答える 7

6

これが方法です::

TextView []tv=new TextView[10];
tv[0]=(TextView)findViewById(R.id.____);
tv[1]=(TextView)findViewById(R.id.____);
tv[2]=(TextView)findViewById(R.id.____);
tv[3]=(TextView)findViewById(R.id.____);
tv[4]=(TextView)findViewById(R.id.____);
tv[5]=(TextView)findViewById(R.id.____);
tv[6]=(TextView)findViewById(R.id.____);
tv[7]=(TextView)findViewById(R.id.____);
tv[8]=(TextView)findViewById(R.id.____);
tv[9]=(TextView)findViewById(R.id.____);

for(int i=0;i<mylist.size();i++)
{
  tv[i].setText(mylist.get(i));
}
于 2012-07-16T09:29:25.200 に答える
4
LinearLayout layout = (LinearLayout) findViewById(R.id.linearLayout1);

            ArrayList<String> mylist = new ArrayList<String>();
            mylist.add("1");
            mylist.add("2");
            mylist.add("3");
            mylist.add("4");
            LayoutParams lparams = new LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT);
            for (int i = 0; i < mylist.size(); i++) 
            {
                TextView tv = new TextView(this);
                tv.setLayoutParams(lparams);
                tv.setText(mylist.get(i));
                layout.addView(tv);
            }

そしてXMLファイル

<LinearLayout
        android:id="@+id/linearLayout1"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:orientation="vertical">
    </LinearLayout>
于 2012-07-16T09:32:21.027 に答える
2

同じ数のテキストビューとデータがある場合は、ビューの配列を作成し、forループを次のように使用します。

      ArrayList<String> mylist =new ArrayList<String>();
        mylist.add("1st");
        mylist.add("2nd");
        mylist.add("3rd");
        mylist.add("4th");
//        mylist.add("5th");
        one=(TextView)findViewById(R.id.textView1);
        two=(TextView)findViewById(R.id.textView2);
        three=(TextView)findViewById(R.id.textView3);
        four=(TextView)findViewById(R.id.textView4);
        ArrayList<TextView>text=new ArrayList<TextView>(Arrays.asList(one,two,three,four));


        for(int i=0;i<mylist.size();i++)
        {
            text.get(i).setText(mylist.get(i));
            //Here mylist contains 10 values and I have 10 different textviews. Now How can i add values 1 to 10 in different textview. set value to First textview 1,second textview to 2 etc.
        }
于 2012-07-16T09:35:38.653 に答える
1
for(int i=0;i<mylist.size();i++)
{
  tv[i].setText(mylist.get(i));
}
于 2012-12-10T12:09:32.027 に答える
1

ここでループする必要はありません

呼び出す必要がありますtextView.setText(mylist.get(0));...ugetメソッドの値を増やしながらこれを10回呼び出す必要があります。また、diffテキストビューインスタンスを使用します。

編集:あなたのコメントと同じように:ここであなたが作成したと仮定します

TextView [] tv; // you need to initialized array here with textviews
ArrayList<String> mylist =new ArrayList<String>();
for(int i=0;i<mylist.size();i++)
{

tv[i].setText(mylist.get(i));
   }
于 2012-07-16T09:23:42.297 に答える
1

次に、forループは必要ありません。テキストを手動でテキストビューに設定するだけです

なので

ArrayList<String> mylist =new ArrayList<String>();
TextView txt1 = (TextView)findviewbyId(R.id.txt1);
txt1.setText(mylist.get(0);

....//upto 10 textViews

TextView txt10 = (TextView)findviewbyId(R.id.txt10);
txt10.setText(mylist.get(9);
于 2012-07-16T09:26:33.097 に答える
1

あなたはこのようなことを試すことができます:

for(int i=0;i<mylist.size();i++)
{
    TextView tv = findViewById(getResources().getIdentifier("textView"+i, "id",getPackageName())); 
    tv.setText(mylist.get(i));
}

それがあなたのやりたいことかどうかはわかりません。このgetIdentifierメソッドを使用してtextViewsを取得しました。それ以外の場合は、textViewsをループで膨らませることができます。

for(int i=0;i<mylist.size();i++)
{
    TextView tv = (TextView)LayoutInflater.from(context).inflate(R.layout.myTextView, null); 
    tv.setText(mylist.get(i));
}

これがお役に立てば幸いです

于 2012-07-16T09:35:08.083 に答える