Je construis une application android où il y a un écran d'accueil dans lequel onCreate j'initialise la tâche asynchrone. Dans cette tâche asynchrone, j'obtiens des données du serveur et montre en utilisant baseAdapter. Maintenant, le problème est lors de l'actualisation Je tire à nouveau la tâche asynchrone Et il duplique mes données Donc, je dois faire l'ancienne suppression de données et la nouvelle insertion de données dans la liste en utilisant BaseAdapter.Comment rendre JSONarray nul dans android?
Voici faire tâche Async -
/**
* Async task class to get json by making HTTP call
*/
private class questionfeed_async extends AsyncTask<Void, Void, Void> {
@Override
protected void onPreExecute() {
// TODO Auto-generated method stub
super.onPreExecute();
}
@Override
protected Void doInBackground(Void... params) {
// TODO Auto-generated method stub
ServiceHandler http = new ServiceHandler();
jsonString = http.makeServiceCall(url, ServiceHandler.GET,
null);
if (jsonString != null) {
try {
SCROLL_TO_POSITION = currentQuestionArray.length();
questions = new JSONArray(jsonString);
//result_text = new String[questions.length()];
for (int i = 0; i < questions.length(); i++) {
temp_obj = questions.getJSONObject(i);
JSONObject currentQuestionObject = new JSONObject();
currentQuestionObject.put("question_text", temp_obj.getString(Tag_questionText)
.toString());
currentQuestionArray.put(currentQuestionObject);
}
} catch (JSONException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
} else {
Log.d("TAG", "Empty");
}
return null;
}
@Override
protected void onPostExecute(Void result) {
// TODO Auto-generated method stub
super.onPostExecute(result);
adapter = new BaseAdapterFeed(getActivity(), currentQuestionArray);
questionfeed_customelistview.setAdapter(adapter);
} catch (NullPointerException e) {
// probably don't bother doing clean up
} finally {
// carry on as if nothing went wrong
}
}
pour répondre, mais THanks cela ne me aidera pas car il deviendra problème dans la pagination. J'ai donc rendu ce tableau vide. Rafraîchir –
Pouvez-vous suggérer un moyen d'effacer l'ancien JSONArray et de l'initialiser à nouveau lors de l'actualisation. puis lancez ma tâche asynchrone –
Tout ce que je sais est ----- Il suffit de créer un nouveau JSONArray. JSONArray otherJsonArray = new JSONArray(); Ou parcourez le tableau et supprimez (index int) les index. http://www.json.org/javadoc/org/json/JSONArray.html#remove(int) – Soham