大家好,我目前正面临着适配器的问题,它给了我空指针异常,虽然它之前有效。
以下是代码和其中使用的方法的代码。
try{
offre = new OffreBDD(ListeOffre.this);
offre.open();// c est pour autoriser l acces de lire de la base
// get all produits
list = (ArrayList<Offre>) offre.getAllOffres();
Log.i("testarray", list.size()+"");
myAdapter = new AdapterOffre(ListeOffre.this, list);
listview.setAdapter(myAdapter);
offre.close();
}catch (Exception e){
e.printStackTrace();
}
public ArrayList<Offre> getAllOffres() {
ArrayList<Offre> offres = new ArrayList<Offre>();
// 1. build the query
String query = "SELECT * FROM offre ";
// 2. get reference to writable DB
Cursor cursor = bdd.rawQuery(query, null);
// 3. go over each row, build book and add it to list
Offre offre = null;
try{
if (cursor.moveToFirst()) {
do {
offre = new Offre();
offre.setCodeOffre(Integer.parseInt(cursor.getString(0)));
offre.setNomOffre(cursor.getString(2));
offre.setCodeUser(Integer.parseInt(cursor.getString(1)));
offre.setDateDebut(cursor.getString(3));
offre.setDateFin(cursor.getString(4));
offre.setDescription(cursor.getString(5));
// Add book to books
offres.add(offre);
} while (cursor.moveToNext());
}
}catch(Exception e){
}
Log.d("getAllOffres()", offres.toString());
// return books
return offres;
}
我已经检查了用于适配器的arraylist它似乎正常工作并且不是null
以下是适配器代码:
@Override
public View getView(int position, View ConvertView, ViewGroup parent) {
ViewHolder holder;
if (ConvertView == null) {
ConvertView = myinflater.inflate(
com.example.applicationpfe.R.layout.listitem, null);
holder = new ViewHolder();
holder.nom = (TextView) ConvertView.findViewById(R.id.nom);
// Pour assurer l'unicité
ConvertView.setTag(holder);
} else {
holder = (ViewHolder) ConvertView.getTag();
}
holder.nom.setText(producteur.get(position).getNomOffre());
return ConvertView;
}