D
Didi95
Neues Mitglied
- 0
Moin,
ich entwickle im moment eine app für die schule. Habe mich jetzt mal an Fragmenten versucht, und bekomme nun eine Fehlermeldung: java.lang.IllegalStateException: Content view not yet created
Ich weiß nicht genau wie ich das in einer Fragmentactivity mit den layouts händeln muss. Kann mir jemand da einen tipp geben? (der Fehler muss ja irgendwo in der OnCreateView liegen)
ich entwickle im moment eine app für die schule. Habe mich jetzt mal an Fragmenten versucht, und bekomme nun eine Fehlermeldung: java.lang.IllegalStateException: Content view not yet created
Ich weiß nicht genau wie ich das in einer Fragmentactivity mit den layouts händeln muss. Kann mir jemand da einen tipp geben? (der Fehler muss ja irgendwo in der OnCreateView liegen)
Code:
public class fragment extends ListFragment {
// Progress Dialog
private ProgressDialog pDialog;
JSONParser jParser = new JSONParser();
ArrayList<HashMap<String, String>> substitionList;
// url to get substition plan
private static String url_all_products = "http://yourcloud.eichsfeld-gymnasium.de/app_neu/get_all_products.php?id=23";
// JSON Node names
private static final String TAG_SUCCESS = "success";
private static final String TAG_ERROR = "error";
private static final String TAG_PRODUCTS="substitionplan";
private static final String TAG_DATUM = "Datum";
private static final String TAG_Stunde = "Stunde";
private static final String TAG_Klassen = "Klassen";
private static final String TAG_Vertreter = "Vertreter";
private static final String TAG_Fach = "Fach";
private static final String TAG_Raum = "Raum";
private static final String TAG_Art = "Art";
private static final String TAG_Lehrer_alt = "Lehrer_alt";
private static final String TAG_le_nach = "le_nach";
private static final String TAG_Vertretungstext = "Vertretungstext";
private static final String KEY_Returned="dataReturned";
// products JSONArray
JSONArray Vertretung = null;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
Log.e("Test", "hello");
// Hashmap for ListView
substitionList = new ArrayList<HashMap<String, String>>();
}
@Override
public void onActivityCreated(Bundle savedInstanceState) {
super.onActivityCreated(savedInstanceState);
}
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
SharedPreferences Klassen = getActivity().getSharedPreferences("shared_string1", 0);
String dataReturned = Klassen.getString("KEY_ART", null);
// Loading value class in Background Thread
// Get listview
ListView lv = getListView();
LinearLayout view = (LinearLayout) inflater.inflate(R.layout.all_products, container, false);
new LoadAllProducts().execute(dataReturned);
return view;
}
/**
* Background Async Task to Load all product by making HTTP Request
* */
class LoadAllProducts extends AsyncTask<String, String, String> {
private MenuItem menuItem;
/**
* Before starting background thread Show Progress Dialog
* */
protected void onPreExecute() {
super.onPreExecute();
}
/**
* getting All products from url
* */
protected String doInBackground(String... args) {
// Building Parameters
List<NameValuePair> params = new ArrayList<NameValuePair>();
params.add(new BasicNameValuePair(KEY_Returned, args[0]));
// getting JSON string from URL
JSONObject json = jParser.makeHttpRequest(url_all_products, "POST", params);
// Check your log cat for JSON reponse
Log.d("Alle Vertretungen: ", json.toString());
try {
// Checking for SUCCESS TAG
int success = json.getInt(TAG_SUCCESS);
if (success == 1) {
// Vertretung found
// Getting Array of Vertretung
Vertretung = json.getJSONArray(TAG_PRODUCTS);
// looping through All Products
for (int i = 0; i < Vertretung.length(); i++) {
JSONObject c = Vertretung.getJSONObject(i);
// Storing each json item in variable
String Datum = c.getString(TAG_DATUM);
String Klasse = c.getString(TAG_Klassen);
String Stunde = c.getString(TAG_Stunde);
String Vertreter = c.getString(TAG_Vertreter);
String Fach = c.getString(TAG_Fach);
String Raum = c.getString(TAG_Raum);
String Art = c.getString(TAG_Art);
String Lehrer_alt = c.getString(TAG_Lehrer_alt);
String le_nach = c.getString(TAG_le_nach);
String Vertretungstext = c.getString(TAG_Vertretungstext);
// creating new HashMap
HashMap<String, String> map = new HashMap<String, String>();
// adding each child node to HashMap key => value
map.put(TAG_DATUM, Datum);
map.put(TAG_Klassen, Klasse);
map.put(TAG_Stunde, Stunde);
map.put(TAG_Vertreter, Vertreter);
map.put(TAG_Fach, Fach);
map.put(TAG_Raum, Raum);
map.put(TAG_Art, Art);
map.put(TAG_Lehrer_alt, Lehrer_alt);
map.put(TAG_le_nach, le_nach);
map.put(TAG_Vertretungstext, Vertretungstext);
// adding HashList to ArrayList
substitionList.add(map);
}
}else if (success == 0) {
}
}catch (JSONException e) {
e.printStackTrace();
}
return null;
}
protected void onPostExecute(String file_url) {
// dismiss the dialog after getting substition plan
pDialog.dismiss();
// updating UI from Background Thread
getActivity().runOnUiThread(new Runnable() {
public void run() {
/**
* Updating parsed JSON data into ListView
*
* Android möchte einen Context haben - ein Fragment allein hat keinen Context,
* den stellt nur die Activity dar, der dieses Fragment zugeordnet ist.
* bisschen irritierend, aber wenns mit fragment nicht klappt, versuch einfach noch ein getActivity() dran zu hängen ;-)
* */
ListAdapter adapter = new SimpleAdapter(fragment.this.getActivity(), substitionList,
R.layout.list_item2, new String[] {
TAG_Klassen, TAG_Stunde, TAG_Vertreter, TAG_Fach, TAG_Raum, TAG_Art, TAG_Lehrer_alt,TAG_le_nach, TAG_Vertretungstext},
new int[] { R.id.Klassen,R.id.Stunde, R.id.Vertreter, R.id.Fach,R.id.Raum,R.id.Art, R.id.Lehrer_alt,R.id.Vertretungstext });
// updating listview
setListAdapter(adapter);
}
});
}
}
}
Zuletzt bearbeitet: