Android 我无法在listview上显示已解析的文本

Android 我无法在listview上显示已解析的文本,android,listview,jsoup,Android,Listview,Jsoup,正如你们所看到的那个样,我大约两天没能解决这个问题,我不知道为什么我找不到任何理由,而且我不是一个专业的初学者 谢谢你,奥尔德雷迪 MainActivity.java 这是我的主要活动 public class MainActivity extends AppCompatActivity { private ArrayList<Person> persons; private ListView listView; private CustomListViewAdapter listV

正如你们所看到的那个样,我大约两天没能解决这个问题,我不知道为什么我找不到任何理由,而且我不是一个专业的初学者 谢谢你,奥尔德雷迪

MainActivity.java

这是我的主要活动

public class MainActivity extends AppCompatActivity {
private ArrayList<Person> persons;
private ListView listView;
private CustomListViewAdapter listViewAdapter;
String Datas;
@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

    initialize();
    fillArrayList(persons);
}
    private void initialize() {
        persons = new ArrayList<Person>();
        listView = (ListView) findViewById(R.id.person_list_view);
        listViewAdapter = new CustomListViewAdapter(MainActivity.this,persons);
        listView.setAdapter(listViewAdapter);
    }

    private void fillArrayList(ArrayList<Person>persons){
            String veriDizisi[] =new String[500];



            int sayi=0;
            int sayac=0;

            try{
                final StringBuilder builder = new StringBuilder();

                Document doc = Jsoup.connect("http://www.planecrashinfo.com/recent.htm").get();
                String title = doc.title();
                Elements links = doc.select("tr");
                // builder.append(title).append("\n");
                for (Element link : links) {
                    if (sayi>=1){
                        builder.append("\n").append("").append(link.text());
                        Datas= builder.toString();
                        sayi++;
                    }
                    else {

                        sayi++;
                    }

                }

            }catch (Exception e){

                e.printStackTrace();
            }
        for (int index = 0; index < 200; index++) {
            Person person = new Person(index+"",Datas,R.drawable.ic_launcher_background);
            persons.add(person);



        }

    }
 }
CustomListViewAdapter.java

这里是我的适配器类

public class Person {
private String name;
private final String address;
private int photoId;

public Person(String name,String address,  int photoId) {
    this.name = name;
    this.address = address;
    this.photoId = photoId;

}

public int getPhotoId() {
    return photoId;
}

public String getName() {
    return name;
}

public String getAddress() {return address;}

}
public class CustomListViewAdapter extends ArrayAdapter<Person> {

private final LayoutInflater inflater;
private final Context context;
private ViewHolder holder;
private final ArrayList<Person> persons;

public CustomListViewAdapter(Context context, ArrayList<Person> persons) {
    super(context,0, persons);
    this.context = context;
    this.persons = persons;
    inflater = LayoutInflater.from(context);
}

@Override
public int getCount() {
    return persons.size();
}

@Override
public Person getItem(int position) {
    return persons.get(position);
}

@Override
public long getItemId(int position) {
    return persons.get(position).hashCode();
}

@Override
public View getView(int position, View convertView, ViewGroup parent) {

    if (convertView == null) {

        convertView = inflater.inflate(R.layout.list_view_item, null);

        holder = new ViewHolder();
        holder.personImage = (ImageView) convertView.findViewById(R.id.person_image);
        holder.personNameLabel = (TextView) convertView.findViewById(R.id.person_name_label);
        holder.personAddressLabel = (TextView) convertView.findViewById(R.id.person_address_label);
        convertView.setTag(holder);

    }
    else{
        //Get viewholder we already created
        holder = (ViewHolder)convertView.getTag();
    }

    Person person = persons.get(position);
    if(person != null){
        holder.personImage.setImageResource(person.getPhotoId());
        holder.personNameLabel.setText(person.getName());
        holder.personAddressLabel.setText(person.getAddress());

    }
    return convertView;
}

//View Holder Pattern for better performance
private static class ViewHolder {
    TextView personNameLabel;
    TextView personAddressLabel;
    ImageView personImage;

  }
}

尝试更改这两行的顺序: 由此

initialize();
fillArrayList(persons);
为此:

fillArrayList(persons);
initialize();
在persons ArrayList中添加person项之前,您正在初始化listview和适配器,这意味着您在listview中没有要显示的项

在您的代码中,将fillArrayListpersons移到上面的initialize

中,请您的问题准确地解释您遇到的问题。