Abbastanza strano - ho creato il mio TextView in Code ed è stato eseguito il wrapping - nonostante non abbia impostato nulla tranne le cose standard - ma guarda tu stesso:
LinearLayout.LayoutParams childParams = new LinearLayout.LayoutParams(LayoutParams.FILL_PARENT,
LayoutParams.WRAP_CONTENT);
childParams.setMargins(5, 5, 5, 5);
Label label = new Label(this);
label.setText("This is a testing label This is a testing label This is a testing label This is a testing labelThis is a testing label This is a testing label");
label.setLayoutParams(childParams);
Come puoi vedere dalla definizione dei parametri, sto usando un LinearLayout. La classe Label estende semplicemente TextView, senza fare nulla se non impostare la dimensione del carattere e il colore del carattere.
Quando viene eseguito nell'emulatore (API livello 9), avvolge automaticamente il testo su 3 righe.