сохранить значение arraylist для другого textview

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.
}

Пожалуйста, помогите мне найти это.

  • 0
    В чем проблема ?
  • 0
    Как мы можем хранить значения в разных текстовых представлениях для цикла. textview1.settext (первое значение массива); textview2.settext (второе значение от arraylist); и так далее.
Показать ещё 1 комментарий
Теги:
arraylist

7 ответов

4
Лучший ответ

Это способ::

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));
}
  • 0
    Спасибо, это работает. +1 за эту помощь.
  • 0
    Ох ... здорово, что вы меняете правильность ответа ..: Ура ... !!
Показать ещё 1 комментарий
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>
  • 1
    Почему этот ответ получил отрицательный голос, это правильный ответ !!
  • 1
    +1 это тоже верно
2

Если u имеет одинаковое отсутствие текстовых представлений, а данные затем создают массив представлений, то используйте для цикла как:

      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.
        }
1
for(int i=0;i<mylist.size();i++)
{
  tv[i].setText(mylist.get(i));
}
1

Вы можете попробовать что-то вроде этого:

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

Я не уверен, что ты хочешь это сделать. Я использовал метод getIdentifier для извлечения текстовых элементов. Кроме того, вы можете раздуть ваши текстовые элементы в цикле:

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

Надеюсь, что это поможет вам

1

Тогда вам не нужен цикл. просто введите текст в текстовые представления вручную

в виде

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);
1

Вам не нужен цикл здесь

вам нужно вызвать textView.setText(mylist.get(0));... U нужно вызывать это 10 раз с увеличением значения в методе get.. и с экземплярами разного текста.

Изменение: как ваш комментарий: здесь предположим, что вы создали

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));
   }
  • 0
    Но размер () массива не является фиксированным.
  • 0
    тогда как размер TextView фиксирован? если это не исправлено, вы можете создать массив TextViews, и в соответствии с размером списка, вы можете вызвать это в цикле.
Показать ещё 2 комментария

Ещё вопросы

Сообщество Overcoder
Наверх
Меню