Problème d'affichage des données sur listView
Bonjour,
Je travaille sur une application Android dont l'objectif est de récupérer des données issus d'une bdd MySQL en générant des réponses JSON, et aussi afficher ces données dans une listView.
L'opération de récupération des données est bien faite.
Le seul problème se focalise dans l'affichage.
Voilà ma classe qui contient tout :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133
| public class afficherAbonnes extends Activity{
ListView listView;
private String URL = "http://10.0.2.2/FlashInfoWebServices/listeabonnes.php";
ArrayList<HashMap<String, String>> mylist = new ArrayList<HashMap<String, String>>();
List<Utilisateur> listeUsers = null;
ArrayList<Utilisateur> arrayOfWebData = new ArrayList<Utilisateur>();
FancyAdapter aa = null;
static ArrayList<String> resultRow;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.afficherabonnesadmin);
listView = (ListView) findViewById(R.id.listView1);
getServerData(URL);
aa = new FancyAdapter();
listView.setAdapter(aa);
}
class FancyAdapter extends ArrayAdapter<Utilisateur>
{
public FancyAdapter() {
super(afficherAbonnes.this, android.R.layout.simple_list_item_1, arrayOfWebData);
// TODO Auto-generated constructor stub
}
public View getView(int position, View convertView, ViewGroup parent)
{
ViewHolder holder;
if(convertView==null) {
LayoutInflater inflater = getLayoutInflater();
convertView = inflater.inflate(R.layout.list_abonnes, null);
holder = new ViewHolder(convertView);
convertView.setTag(holder);
}
else
{
holder = (ViewHolder) convertView.getTag();
}
holder.form((Utilisateur) arrayOfWebData.get(position));
return (convertView);
}
}
class ViewHolder {
public TextView login = null;
public TextView password = null;
public TextView nom = null;
public ViewHolder(View view) {
login = (TextView) findViewById(R.id.textLogin);
password = (TextView) findViewById(R.id.textPassword);
nom = (TextView) findViewById(R.id.textNom);
}
void form(Utilisateur i) {
login.setText(i.getLogin().toString());
password.setText(i.getPassword().toString());
nom.setText(i.getNom().toString());
}
}
public void getServerData(String URL) {
InputStream is = null;
String result = "";
//JSONObject jArray = null;
JSONArray jArray = null;
try {
HttpClient httpclient = new DefaultHttpClient();
HttpPost httppost = new HttpPost(URL);
HttpResponse response = httpclient.execute(httppost);
HttpEntity entity = response.getEntity();
is = entity.getContent();
} catch(Exception e) {
Log.e("log_tag", "Error in http connection " + e.toString());
}
// Convertion de la requête en string
try {
BufferedReader reader = new BufferedReader(new InputStreamReader(is,"iso-8859-1"),8);
StringBuilder sb = new StringBuilder();
String line = null;
while ((line = reader.readLine()) != null) {
sb.append(line + "\n");
}
is.close();
result = sb.toString();
Log.e("log_tag", "Resulta du fichier jsp" + result);
}catch(Exception e){
Log.e("log_tag", "Error converting result " + e.toString());
}
// Parse les données JSON
try{
jArray = new JSONArray(result);
for(int i=0; i<jArray.length(); i++)
{
JSONObject json_data = jArray.getJSONObject(i);
Toast.makeText(this, json_data.getString("login"), Toast.LENGTH_SHORT).show();
Utilisateur resultRow = new Utilisateur(json_data.getString("login")
, json_data.getString("password")
, json_data.getString("nom"));
arrayOfWebData.add(resultRow);
}
}catch(JSONException e){
Log.e("log_tag", "Error parsing data " + e.toString());
}
}
} |
Voilà les erreurs qui s'affichent quand j'accède à l'activité :
Citation:
08-16 21:07:31.888: E/AndroidRuntime(788): java.lang.NullPointerException
08-16 21:07:31.888: E/AndroidRuntime(788): at adminActivity.afficherAbonnes$ViewHolder.form(afficherAbonnes.java:109)
08-16 21:07:31.888: E/AndroidRuntime(788): at adminActivity.afficherAbonnes$FancyAdapter.getView(afficherAbonnes.java:88)
08-16 21:07:31.888: E/AndroidRuntime(788): at android.widget.AbsListView.obtainView(AbsListView.java:1315)
08-16 21:07:31.888: E/AndroidRuntime(788): at android.widget.ListView.measureHeightOfChildren(ListView.java:1198)
08-16 21:07:31.888: E/AndroidRuntime(788): at android.widget.ListView.onMeasure(ListView.java:1109)
08-16 21:07:31.888: E/AndroidRuntime(788): at android.view.View.measure(View.java:8171)
08-16 21:07:31.888: E/AndroidRuntime(788): at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:3132)
08-16 21:07:31.888: E/AndroidRuntime(788): at android.widget.LinearLayout.measureChildBeforeLayout(LinearLayout.java:1012)
08-16 21:07:31.888: E/AndroidRuntime(788): at android.widget.LinearLayout.measureVertical(LinearLayout.java:381)
08-16 21:07:31.888: E/AndroidRuntime(788): at android.widget.LinearLayout.onMeasure(LinearLayout.java:304)
08-16 21:07:31.888: E/AndroidRuntime(788): at android.view.View.measure(View.java:8171)
08-16 21:07:31.888: E/AndroidRuntime(788): at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:3132)
08-16 21:07:31.888: E/AndroidRuntime(788): at android.widget.FrameLayout.onMeasure(FrameLayout.java:245)
08-16 21:07:31.888: E/AndroidRuntime(788): at android.view.View.measure(View.java:8171)
08-16 21:07:31.888: E/AndroidRuntime(788): at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:3132)
08-16 21:07:31.888: E/AndroidRuntime(788): at android.widget.FrameLayout.onMeasure(FrameLayout.java:245)
08-16 21:07:31.888: E/AndroidRuntime(788): at android.view.View.measure(View.java:8171)
08-16 21:07:31.888: E/AndroidRuntime(788): at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:3132)
08-16 21:07:31.888: E/AndroidRuntime(788): at android.widget.FrameLayout.onMeasure(FrameLayout.java:245)
08-16 21:07:31.888: E/AndroidRuntime(788): at android.view.View.measure(View.java:8171)
08-16 21:07:31.888: E/AndroidRuntime(788): at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:3132)
08-16 21:07:31.888: E/AndroidRuntime(788): at android.widget.LinearLayout.measureChildBeforeLayout(LinearLayout.java:1012)
08-16 21:07:31.888: E/AndroidRuntime(788): at android.widget.LinearLayout.measureVertical(LinearLayout.java:381)
08-16 21:07:31.888: E/AndroidRuntime(788): at android.widget.LinearLayout.onMeasure(LinearLayout.java:304)
08-16 21:07:31.888: E/AndroidRuntime(788): at android.view.View.measure(View.java:8171)
08-16 21:07:31.888: E/AndroidRuntime(788): at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:3132)
08-16 21:07:31.888: E/AndroidRuntime(788): at android.widget.FrameLayout.onMeasure(FrameLayout.java:245)
08-16 21:07:31.888: E/AndroidRuntime(788): at android.view.View.measure(View.java:8171)
08-16 21:07:31.888: E/AndroidRuntime(788): at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:3132)
08-16 21:07:31.888: E/AndroidRuntime(788): at android.widget.LinearLayout.measureChildBeforeLayout(LinearLayout.java:1012)
08-16 21:07:31.888: E/AndroidRuntime(788): at android.widget.LinearLayout.measureVertical(LinearLayout.java:381)
08-16 21:07:31.888: E/AndroidRuntime(788): at android.widget.LinearLayout.onMeasure(LinearLayout.java:304)
08-16 21:07:31.888: E/AndroidRuntime(788): at android.view.View.measure(View.java:8171)
08-16 21:07:31.888: E/AndroidRuntime(788): at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:3132)
08-16 21:07:31.888: E/AndroidRuntime(788): at android.widget.FrameLayout.onMeasure(FrameLayout.java:245)
08-16 21:07:31.888: E/AndroidRuntime(788): at android.view.View.measure(View.java:8171)
08-16 21:07:31.888: E/AndroidRuntime(788): at android.widget.LinearLayout.measureVertical(LinearLayout.java:526)
08-16 21:07:31.888: E/AndroidRuntime(788): at android.widget.LinearLayout.onMeasure(LinearLayout.java:304)
08-16 21:07:31.888: E/AndroidRuntime(788): at android.view.View.measure(View.java:8171)
08-16 21:07:31.888: E/AndroidRuntime(788): at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:3132)
08-16 21:07:31.888: E/AndroidRuntime(788): at android.widget.FrameLayout.onMeasure(FrameLayout.java:245)
08-16 21:07:31.888: E/AndroidRuntime(788): at android.view.View.measure(View.java:8171)
08-16 21:07:31.888: E/AndroidRuntime(788): at android.view.ViewRoot.performTraversals(ViewRoot.java:801)
08-16 21:07:31.888: E/AndroidRuntime(788): at android.view.ViewRoot.handleMessage(ViewRoot.java:1727)
08-16 21:07:31.888: E/AndroidRuntime(788): at android.os.Handler.dispatchMessage(Handler.java:99)
08-16 21:07:31.888: E/AndroidRuntime(788): at android.os.Looper.loop(Looper.java:123)
08-16 21:07:31.888: E/AndroidRuntime(788): at android.app.ActivityThread.main(ActivityThread.java:4627)
08-16 21:07:31.888: E/AndroidRuntime(788): at java.lang.reflect.Method.invokeNative(Native Method)
08-16 21:07:31.888: E/AndroidRuntime(788): at java.lang.reflect.Method.invoke(Method.java:521)
08-16 21:07:31.888: E/AndroidRuntime(788): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:868)
08-16 21:07:31.888: E/AndroidRuntime(788): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:626)
08-16 21:07:31.888: E/AndroidRuntime(788): at dalvik.system.NativeStart.main(Native Method)
J ai besoin de votre aide,
Merci d'avance.