Glinda
Glinda

Reputation: 151

Not being able to add multiple child views to parent view

I am trying to add multiple relative layouts to a Linear layout. I am using the following lines of code.

        LayoutInflater inflator = (LayoutInflater)getSystemService(Context.LAYOUT_INFLATER_SERVICE);
        LinearLayout item = (LinearLayout)findViewById(R.id.reviews);

        for(int i=0 ; i<2 ; i++){
            View child = inflator.inflate(R.layout.review_item, null);
            child.setId(i);
            child.setTag(i);
            item.addView(child);
        }

But I can only see one child view. Can anyone tell me where I am going wrong.

Upvotes: 1

Views: 1098

Answers (2)

Joseph Roque
Joseph Roque

Reputation: 5146

You need to take the first two lines outside of the for loop. You're inflating the LinearLayout twice, which overrides the first layout you inflate, rather than adding to it. By putting those two lines before the for loop starts, you'll add both child views to a single LinearLayout.

Upvotes: 1

Sebastian Walla
Sebastian Walla

Reputation: 1124

Declare the LinearLayout item outside of the for loop. The way you're doing it the variables value will be overwritten each time you run through the for loop. So your method should look like this:

public void somemethod(){

     LayoutInflater inflator = (LayoutInflater)getSystemService(Context.LAYOUT_INFLATER_SERVICE);
     LinearLayout item = (LinearLayout)findViewById(R.id.reviews);
     for(int i=0 ; i<2 ; i++)
        {

            View child = inflator.inflate(R.layout.review_item, null);
            child.setId(i);
            child.setTag(i);
            item.addView(child);
        }

}

Upvotes: 1

Related Questions