1. java
  2. android
  3. c#
  4. .net
  5. javascript
  6. php
  7. jquery
  8. html
  9. sql

Array sobrescreve ao invés de adicionar.

Boa tarde,

Ainda sou iniciante em programação atualmente aprendendo Android.

Estou fazendo uma tela que captura algumas informações de um site e passa para uma list view. O código abaixo funciona quando utilizo só a página principal do site, quando tento passar para a página 2 ao invés de adicionar ao final do Array, ele sobrescreve todo o Array.

Cheguei ao limite do meu conhecimento, chuto que possa ser um erro bobo em como os for estão construídos, porém não consegui chegar a solução sozinho.

package br.com.testejsoup.eu.testejsoup;

import android.content.Intent;
import android.os.AsyncTask;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.AdapterView;
import android.widget.ArrayAdapter;
import android.widget.ListView;

import org.jsoup.Jsoup;
import org.jsoup.nodes.Document;
import org.jsoup.select.Elements;

import java.io.IOException;

public class MainActivity extends AppCompatActivity {

    private ListView conteudo;
    String[] aniNomes;
    String[] aniLinks;
    ArrayAdapter<String> adaptador;
    Document doc;


    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        conteudo = findViewById(R.id.html_conteudo);

        new doit().execute();

        conteudo.setOnItemClickListener(new AdapterView.OnItemClickListener() {
            @Override
            public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
                int posicao = position;

                Intent intent = new Intent(MainActivity.this, Episodio.class);
                intent.putExtra("aniLinks", aniLinks[posicao]);
                //Toast.makeText(getApplicationContext(), aniLinks[posicao], Toast.LENGTH_LONG).show();
                startActivity(intent);
            }
        });

    }

    public class doit extends AsyncTask<Void, Void, Void>{
        String URL = "SITE/lancamentos?page=";
        Elements nome;
        Elements links;
        int paginas = 5;

        @Override
        protected Void doInBackground(Void... voids) {

            try {


                for (int i=1; i<= paginas;i++) {
                    String new_URL = URL + i;
                    doc = Jsoup.connect(new_URL).get();
                    nome = doc.select("div.nome-thumb a.tt");
                    links = doc.select("div.nome-thumb a.tt");
                }
                    aniNomes = new String[nome.size()];
                    aniLinks = new String[links.size()];
                    for (int i = 0; i < nome.size(); i++) {
                        aniNomes[i] = nome.get(i).text();
                    }
                    for (int i = 0; i < links.size(); i++) {
                        aniLinks[i] = links.get(i).attr("abs:HREF");
                    }
                    adaptador = new ArrayAdapter<>(getApplicationContext(), android.R.layout.simple_list_item_1, android.R.id.text1, aniNomes);



            } catch (IOException e) {
                e.printStackTrace();
            }

            return null;
        }


        @Override
        protected void onPostExecute(Void aVoid) {
            super.onPostExecute(aVoid);
            conteudo.setAdapter(adaptador);

        }
    }


}
  1. Você vai ver essas setas em qualquer página de pergunta. Com elas, você pode dizer se uma pergunta ou uma resposta foram relevantes ou não.
  2. Edite sua pergunta ou resposta caso queira alterar ou adicionar detalhes.
  3. Caso haja alguma dúvida sobre a pergunta, adicione um comentário. O espaço de respostas deve ser utilizado apenas para responder a pergunta.
  4. Se o autor da pergunta marcar uma resposta como solucionada, esta marca aparecerá.
  5. Clique aqui para mais detalhes sobre o funcionamento do GUJ!

1 resposta

Não é a resposta que estava procurando? Procure outras perguntas com as tags android ou faça a sua própria pergunta.