Android 使用JSOUP填充自定义ListView项

Android 使用JSOUP填充自定义ListView项,android,listview,jsoup,Android,Listview,Jsoup,这是我的片段的一部分,它提取HTML表的一些部分: public class Vertretung extends Fragment { ArrayList<Vertretungsdaten> mData = new ArrayList<Vertretungsdaten>(); ListView mListView; private CustomAdapter mAdapter; //unr

这是我的片段的一部分,它提取HTML表的一些部分:

public class Vertretung extends Fragment {
        ArrayList<Vertretungsdaten> mData = new ArrayList<Vertretungsdaten>();
        ListView mListView;
        private CustomAdapter mAdapter;
                 //unrelevant stuff
            String URL = "https://greselius.net/idesk/vplan/Anzeige/Schueler_heute/subst_001.htm";
            try {
                Document doc = Jsoup.connect(URL).userAgent("Mozilla/5.0 (Macintosh; U; Intel Mac OS X; de-de) AppleWebKit/523.10.3 (KHTML, like Gecko) Version/3.0.4 Safari/523.10").get(
                );
                Elements questions = doc.select("table.mon_list");
                Elements td = questions.select("td[align]");
                for (Element myElement: td) {
                    Vertretungsdaten daten = new Vertretungsdaten();
                    daten.setKlasse(myElement.text());
                    daten.setStunde(myElement.text());
                    daten.setVertreter(myElement.text());
                    daten.setFach(myElement.text());
                    daten.setRaum(myElement.text());
                    daten.setLehrer(myElement.text());
                    daten.setArt(myElement.text());
                    daten.setText(myElement.text());
                    mData.add(daten);
                }                            
每个字符串都有getter和setter。 现在这是我的CustomAdapter:

public class CustomAdapter extends ArrayAdapter<Vertretungsdaten> {

    private ArrayList<Vertretungsdaten> objects;


    public CustomAdapter(Context context, int textViewResourceId, ArrayList<Vertretungsdaten> objects) {
        super(context, textViewResourceId, objects);
        this.objects = objects;
    }


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


        View v = convertView;


        if (v == null) {
            LayoutInflater inflater = (LayoutInflater) getContext().getSystemService(Context.LAYOUT_INFLATER_SERVICE);
            v = inflater.inflate(R.layout.item, null);
        }


        Vertretungsdaten i = objects.get(position);

        if (i != null) {

            TextView lehrer = (TextView) v.findViewById(R.id.lehrer);
            //same thing for the other textviews

            lehrer.setText(i.getLehrer());
            //again same thing for the other textviews

        return v;

    }

}
但实际情况是:

Klasse      Klasse       Klasse     Klasse
Klasse      Klasse       Klasse     Klasse

Stunde      Stunde       Stunde     Stunde
Stunde      Stunde       Stunde     Stunde
我做错了什么?
提前感谢

我认为问题在于您正在构建的阵列:

for (Element final : td) {
                        Vertretungsdaten daten = new Vertretungsdaten();
                        daten.setKlasse(question.text());
                        daten.setStunde(question.text());
                        daten.setVertreter(question.text());
                        daten.setFach(question.text());
                        daten.setRaum(question.text());
                        daten.setLehrer(question.text());
                        daten.setArt(question.text());
                        daten.setText(question.text());
                        mData.add(daten);
                    }
您在循环中使用相同的对象“问题”。你能告诉我它是在哪里初始化的吗?还有“td”吗?您应该使用“final”,final.text()来填充daten。 (同样,使用“final”一词不适合用于变量。)


尝试在循环中添加一些日志,以查看您在mData中添加的内容。

很抱歉,我忘记用final替换问题,但这并不能解决我的问题。我编辑了我的帖子,这样你就可以看到td初始化的地方了。
Klasse      Klasse       Klasse     Klasse
Klasse      Klasse       Klasse     Klasse

Stunde      Stunde       Stunde     Stunde
Stunde      Stunde       Stunde     Stunde
for (Element final : td) {
                        Vertretungsdaten daten = new Vertretungsdaten();
                        daten.setKlasse(question.text());
                        daten.setStunde(question.text());
                        daten.setVertreter(question.text());
                        daten.setFach(question.text());
                        daten.setRaum(question.text());
                        daten.setLehrer(question.text());
                        daten.setArt(question.text());
                        daten.setText(question.text());
                        mData.add(daten);
                    }
for (Element myElement: td) {
                        Vertretungsdaten daten = new Vertretungsdaten();
                        daten.setKlasse(myElement.text());
                        daten.setStunde(myElement.text());
                        daten.setVertreter(myElement.text());
                        daten.setFach(myElement.text());
                        daten.setRaum(myElement.text());
                        daten.setLehrer(myElement.text());
                        daten.setArt(myElement.text());
                        daten.setText(myElement.text());
                        mData.add(daten);
                    }