Array de String apresenta apenas o último valor

Preciso apresentar na tela os valores de um array, mas só exibe o ultimo.

Alguém pode me ajudar?

String[] disciplina = new String[6];
disciplina[0] = "Português";
disciplina[1] = "Matemática";
disciplina[2] = "História";
disciplina[3] = "Geografia";
disciplina[4] = "Ciências";
disciplina[5] = "Artes";

for(int i = 0; i < disciplina.length; i ++){
        String s = disciplina[i];
        Disciplina[] disciplinaEscolar = new Disciplina[i];
        TextView materias = (TextView) findViewById(R.id.disciplina);
        materias.setText(disciplinaEscolar.toString());
}

Você precisará concatenar as diversas palavras em uma String, de forma que você tenha uma String com todas, quando for passar ao TextView.

StringBuffer disciplinas = new StringBuffer();
for(int i = 0; i < disciplina.length; i++) {
    disciplinas.append(disciplina[i] + "\n");
}
TextView materias = (TextView) findViewById(R.id.disciplina);
materias.setText(disciplinas.toString());
1 curtida

Funcionou, obrigada.
Preciso pesquisar sobre StringBuffer e append, não conhecia.
Valeu.

O objetivo da classe StringBuffer é melhorar o desempenho quando se precisa concatenar (append) vários valores distintos.
A classe String até resolve, mas, ela é extremamente lenta em comparação com o StringBuffer.
Além de concatenar de forma mais rápida, a StringBuffer possui alguns métodos bem bacanas, como o reverse, que devolve o valor inserido invertido em relação à sua entrada.

Entendi :slight_smile:
Obrigada pela ajuda.