Android 数组覆盖而不是添加

Android 数组覆盖而不是添加,android,Android,下午好 我还是一个编程新手,目前正在学习Android 我正在制作一个屏幕,从网站上捕获一些信息并移动到列表视图。当我只使用站点的主页时,下面的代码可以工作,当我尝试移动到第2页而不是添加到数组的末尾时,它会覆盖整个数组 我已经达到了我知识的极限,我可以踢出一个愚蠢的错误,他们是如何建立的,但我无法达到解决方案单独 对不起,如果我有任何打字错误,我正在使用翻译 package br.com.testejsoup.eu.testejsoup; import android.content

下午好

我还是一个编程新手,目前正在学习Android

我正在制作一个屏幕,从网站上捕获一些信息并移动到列表视图。当我只使用站点的主页时,下面的代码可以工作,当我尝试移动到第2页而不是添加到数组的末尾时,它会覆盖整个数组

我已经达到了我知识的极限,我可以踢出一个愚蠢的错误,他们是如何建立的,但我无法达到解决方案单独

对不起,如果我有任何打字错误,我正在使用翻译

    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.nodes.Element;
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 = "http://www.URL.com/lancamentos?page=";
        String nomeExp;
        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(Element nomeTemp : nome){
                        nomeExp = nomeTemp.text();
                        adaptador.add(nomeExp);
                    }
                }

                    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);

        }
    }


}
package br.com.testejsoup.eu.testejsoup;
导入android.content.Intent;
导入android.os.AsyncTask;
导入android.support.v7.app.AppActivity;
导入android.os.Bundle;
导入android.view.view;
导入android.widget.AdapterView;
导入android.widget.ArrayAdapter;
导入android.widget.ListView;
导入org.jsoup.jsoup;
导入org.jsoup.nodes.Document;
导入org.jsoup.nodes.Element;
导入org.jsoup.select.Elements;
导入java.io.IOException;
公共类MainActivity扩展了AppCompatActivity{
私有列表视图上下文;
字符串[]一个单核苷酸;
字符串链接;
ArrayAdapter适配器;
文件文件;
@凌驾
创建时受保护的void(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
conteudo=findViewById(R.id.html\u conteudo);
新建doit().execute();
conteudo.setOnItemClickListener(新的AdapterView.OnItemClickListener(){
@凌驾
public void onItemClick(AdapterView父对象、视图、整型位置、长id){
int posicao=位置;
意向意向=新意向(MainActivity.this,eposodio.class);
intent.putExtra(“aniLinks”,aniLinks[posicao]);
//Toast.makeText(getApplicationContext(),aniLinks[posicao],Toast.LENGTH_LONG.show();
星触觉(意向);
}
});
}
公共类doit扩展了异步任务{
字符串URL=”http://www.URL.com/lancamentos?page=";
字符串nomeExp;
元素名称;
元素链接;
int-paginas=5;
@凌驾
受保护的空位背景(空位…空位){
试一试{

对于(int i=1;iIts),因为您正在asynctask中创建一个新适配器,然后在调用
setAdapter
方法的
onPostExecute
中使用新适配器及其新条目替换旧适配器及其条目


与在asynctask中创建新适配器不同,我只需创建一个数组/数组列表,向其中添加新条目,然后在
onPostExecute
中,将此数组/列表中的条目添加到唯一的适配器条目集中。

感谢您的帮助,我实际上重新完成了整个Async并从中删除了适配器,它现在工作正常。
    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.nodes.Element;
import org.jsoup.select.Elements;

import java.io.IOException;
import java.util.ArrayList;

public class MainActivity extends AppCompatActivity {

    private ListView conteudo;
    ArrayList<String> aniNomes = new ArrayList<>();
    ArrayList<String> aniLinks = new ArrayList<>();
    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.get(position));
                //Toast.makeText(getApplicationContext(), aniLinks[posicao], Toast.LENGTH_LONG).show();
                startActivity(intent);
            }
        });

    }

    public class doit extends AsyncTask<Void, Void, Void>{
        String URL = "http://www.URL.com/lancamentos?page=";
        String nomeExp;
        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");
                    for (Element nomeT : nome){
                        aniNomes.add(nomeT.text());
                    }
                    for (Element linkT : links){
                        aniLinks.add(linkT.attr("abs:HREF"));
                    }
                }

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

            return null;
        }


        @Override
        protected void onPostExecute(Void aVoid) {
            super.onPostExecute(aVoid);
            adaptador = new ArrayAdapter<>(getApplicationContext(), android.R.layout.simple_list_item_1, android.R.id.text1, aniNomes);
            conteudo.setAdapter(adaptador);

        }
    }


}