Duvida listview

Olá Galera, por favor me ajudem!
Eu estou usando criando um list view e consegui usar o simple_list_item1, usando o adapter abaixo:

ArrayAdapter adapter = new ArrayAdapter(
getApplicationContext(),
android.R.layout.simple_list_item_1,
android.R.id.text1,
itens1)

Muito bem, eu estou dando uma explorada e quero usar o simple_list_item_2 - que possui um item e um sub-item, mas não estou conseguindo, eu tentei adicionar mais duas linhas no construtor, assim:

ArrayAdapter adapter = new ArrayAdapter(
getApplicationContext(),
android.R.layout.simple_list_item_2,
android.R.id.text1,
itens1,
android.R.id.text2,
itens2)

Mas não funcionou. Ai eu tbm tentei criar dois adapters passando uma lista para cada um, e tambem não funcionou, acho que o segundo layout sobrepos o primeiro pois so mostrou o sub item enfim alguem pode ma ajudar como resolver isso?

Como o recurso simple_list_item_2 contém dois TextViews o adaptador ArrayAdapter padrão não funciona aqui.

Para, então, usar o recurso de duas linhas precisamos criar um adaptador personalizado ou mesmo modificar o ArrayAdapter para que ele consiga trabalhar com os dois TextViews. No caso da segunda opção, que é mais prática, verifique o exemplo abaixo:

ArrayAdapter adaptador = new ArrayAdapter(contexto, android.R.layout.simple_list_item_2, android.R.id.text1, lista) {
    //Aqui a gente subscreve os método que cria a visualização que será mostrada no ListView
    @Override
    public View getView(int posicaoNaLista, View convertView, ViewGroup parent) {
        View view = super.getView(posicao, convertView, parent);

        /*
        Aqui a gente carrega as duas views para mostrar nossos textos,
        e como são dois textos precisamos de duas views.

        Podemos usar qualquer TextView para isso, nesse exemplo tô usando
        esses que já vêm prontos nos recursos do próprio Android
        */
        TextView textoDeCima = (TextView) view.findViewById(android.R.id.text1);
        TextView textoDeBaixo = (TextView) view.findViewById(android.R.id.text2);

        //Aqui basta definir o texto de cada view para o que você quiser!
        textoDeCima.setText(listaNomes.get(posicaoNaLista).getNome());
        textoDeBaixo.setText(listaIdades.get(posicaoNaLista).getIdade());
        return view;
    }
};