Добавить представления в LinearLayout программно - PullRequest
5 голосов
/ 26 января 2012

У меня есть активность, которая отображает комментарии. Сами комментарии имеют разметку, поэтому я не могу просто использовать ListView.

Я добавляю комментарии с циклом, и программа проходит весь цикл (проверяется через LogCat), но добавляет только первый просмотр (комментарий) к линейному выводу.

Мой код (в действительности параметр fillComments будет отличаться от String []):

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.comment_layout);
    String[] comments = {"kommentaar 1", "kommentaar 2", "kommentaar 3"};
    mTitle = (TextView) findViewById(R.id.comments_title);
    mTextArea = (EditText) findViewById(R.id.comment_editor);
    mAddButton = (Button) findViewById(R.id.add_comment);
    mCommentArea = (LinearLayout) findViewById(R.id.comments_area);

    mTitle.setText(getIntent().getStringExtra("name"));
    fillComments(comments);
}

private void fillComments(String[] comments) {
    View comment;
    TextView commentator;
    TextView commentDate;
    TextView commentText;
    LayoutInflater inflater = getLayoutInflater();

    for (String s : comments) {
        Log.d("Comment adder", "Adding comment " + s);
        comment = inflater.inflate(R.layout.comment_row_layout, null);
        commentator = (TextView) comment.findViewById(R.id.commentator);
        commentDate = (TextView) comment.findViewById(R.id.comment_date);
        commentText = (TextView) comment.findViewById(R.id.comment_text);
        commentator.setText("Test commentator");
        commentDate.setText("12-12-2012");
        commentText.setText(s);
        mCommentArea.addView(comment);
    }
}

Ответы [ 2 ]

6 голосов
/ 26 января 2012

я думаю mCommentArea = (LinearLayout) findViewById(R.id.comments_area); эта ориентация макета является горизонтальной, поэтому возникают проблемы. пожалуйста, если горизонтальные ориентации, пожалуйста, измените его на вертикальное и наслаждайтесь

2 голосов
/ 26 января 2012

Как вы определили LinearLayout?Это может быть просто проблема отображения.Проверьте размер и ориентацию LinearLayout.

...