package de.boge.infosphere.module; import java.util.ArrayList; import android.content.Intent; import android.os.AsyncTask; import android.os.Bundle; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; import android.widget.AdapterView; import android.widget.ListView; import android.widget.AdapterView.OnItemClickListener; import com.actionbarsherlock.app.SherlockFragment; import de.boge.infosphere.R; import de.boge.infosphere.WebViewActivity; import de.boge.infosphere.parser.ModulItem; import de.boge.infosphere.parser.Parser; import de.boge.infosphere.utils.CustomListAdapterOneRow; import de.boge.infosphere.utils.CustomListAdapterTwoRows; public class TabOberstufe extends SherlockFragment { private ListView listView; private ArrayList<Object> parsedObjects = new ArrayList<Object>(); @Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { View view = inflater.inflate(R.layout.module_unterstufe, container, false); // Beginn Liste listView = (ListView) view.findViewById(R.id.listView1); String[] dummyList = new String[] { "L�dt..." }; CustomListAdapterOneRow adapter = new CustomListAdapterOneRow(getActivity(), dummyList); listView.setAdapter(adapter); listView.setEnabled(false); listView.setOnItemClickListener(new OnItemClickListener() { @Override public void onItemClick(AdapterView<?> parent, View view, int position, long id) { // �ffne die Seite mit dem Anmelde-Formular Intent i = new Intent(getActivity(), WebViewActivity.class); i.putExtra("abTitle", "Anmeldung"); i.putExtra("url", "http://schuelerlabor.informatik.rwth-aachen.de/anmeldung_lehrkraefte"); startActivity(i); } }); // Ende der Liste // Lade die Daten new updateData().execute(""); return view; } /** * L�dt die Daten asynchon aus dem Feed (mit dem Parser) und zeigt diese dann in den entsprechenden Views an. */ private class updateData extends AsyncTask<String, Void, String> { private String[] modulTitle; private String[] modulData; /** * L�dt die Daten in Arrays */ @Override protected String doInBackground(String... params) { parsedObjects = new Parser(getActivity(), 2).getFeedObjects(0); // Nur Elemente mit der ensprechenden Kategorie werden �bernommen ArrayList<Object> tempList = new ArrayList<Object>(parsedObjects); for (Object entry : parsedObjects) { String cat = ((ModulItem) entry).getCategory(); if (!cat.equalsIgnoreCase("oberstufe")) { tempList.remove(entry); } } parsedObjects = tempList; modulTitle = new String[parsedObjects.size()]; modulData = new String[parsedObjects.size()]; for (int i = 0; i < parsedObjects.size(); i++) { modulTitle[i] = (String) ((ModulItem) parsedObjects.get(i)).getTitle(); modulData[i] = (String) ((ModulItem) parsedObjects.get(i)).getDescription() + "\n\nDauer: " + ((ModulItem) parsedObjects.get(i)).getDuration() + "\nVorwissen: " + ((ModulItem) parsedObjects.get(i)).getKnowledge(); } return "Executed"; } /** * L�dt die geparsten Daten in die entsprechenden View-Elemente */ @Override protected void onPostExecute(String result) { if (modulTitle.length == 0 || modulData.length == 0) { CustomListAdapterOneRow adapterCalendar = new CustomListAdapterOneRow(getActivity(), new String[]{"Es konnten keine Daten geladen werden."}); listView.setAdapter(adapterCalendar); listView.setEnabled(false); } else { CustomListAdapterTwoRows adapterCalendar = new CustomListAdapterTwoRows(getActivity(), modulTitle, modulData); listView.setAdapter(adapterCalendar); listView.setEnabled(true); } } } }