这是我的片段的一部分,它提取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);
}
这是我的Vertretungsdaten
课程:
public class Vertretungsdaten {
private String klasse;
private String stunde;
private String vertreter;
private String fach;
private String raum;
private String lehrer;
private String art;
private String text;
private int typ;
public Vertretungsdaten() {
}
public String getVertreter() {
return vertreter;
}
public void setVertreter(String vertreter) {
this.vertreter = vertreter;
}
每个字符串都有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 Lehrer Fach Art
Stunde Vertreter Raum Text
Klasse Lehrer Fach Art
Stunde Vertreter Raum Text
Klasse Lehrer Fach Art
Stunde Vertreter Raum Text
但是会发生什么:
Klasse Klasse Klasse Klasse
Klasse Klasse Klasse Klasse
Stunde Stunde Stunde Stunde
Stunde Stunde Stunde Stunde
我做错了什么? 提前致谢
答案 0 :(得分:0)
我认为问题出在您正在构建的数组中:
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”这个词不适合用于变量。)
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);
}
尝试在循环中放入一些日志以查看您在mData中添加的内容。