使用ArrayAdapter使用setadapter进行空指针异常

时间:2014-04-25 15:08:56

标签: android listview

我想使用数组适配器填充listview但是我总是得到空指针异常。这是主要行为的代码:

public class ListeCategorie extends Activity {
CategorieBDD categorie;
private ArrayList<Catégorie> list = new ArrayList<Catégorie>();
private AdapterCategorie myAdapter;
@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    try {
        setContentView(R.layout.activity_liste_categorie);
        ListView listview = (ListView) findViewById(R.id.listeoffre);
        categorie = new CategorieBDD(ListeCategorie.this);
        categorie.open();// c est pour autoriser l acces de lire de la base
        // get all produits
        list = (ArrayList<Catégorie>) categorie.getAllCategories();
        myAdapter = new AdapterCategorie(ListeCategorie.this, list);
        Log.i("testlog", list.size() + "");
        listview.setAdapter(myAdapter);
        myAdapter.setNotifyOnChange(true);
        categorie.close();
    } catch (Exception e) {
        e.printStackTrace();
    }

现在是适配器代码

public class AdapterCategorie extends ArrayAdapter {
private List<Catégorie> producteur;
private LayoutInflater myinflater;
Context context;
public AdapterCategorie(Context context, ArrayList<Catégorie> data) {
    super(context, R.layout.listitem, data);
    this.context = context;
    this.producteur = data;
}
@Override
public View getView(int position, View ConvertView, ViewGroup parent) {
    LayoutInflater inflater = (LayoutInflater) context
            .getSystemService(Context.LAYOUT_INFLATER_SERVICE);
    ConvertView = inflater.inflate(R.layout.listitem, parent, false);
    TextView nom = (TextView) ConvertView.findViewById(R.id.nom);
    TextView nompro = (TextView) ConvertView.findViewById(R.id.code);
    nom.setText(producteur.get(position).getNomCatégorie());

    return ConvertView;

现在是logcat

04-25 15:03:11.312: W/System.err(16710):    at com.Consultation.applicationpfe.ListeCategorie.onCreate(ListeCategorie.java:31)
04-25 15:03:11.332: W/System.err(16710):    at android.app.Activity.performCreate(Activity.java:5104)
04-25 15:03:11.332: W/System.err(16710):    at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1080)
04-25 15:03:11.332: W/System.err(16710):    at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2144)
04-25 15:03:11.332: W/System.err(16710):    at android.app.ActivityThread.startActivityNow(ActivityThread.java:2023)
04-25 15:03:11.332: W/System.err(16710):    at android.app.LocalActivityManager.moveToState(LocalActivityManager.java:135)
04-25 15:03:11.332: W/System.err(16710):    at android.app.LocalActivityManager.startActivity(LocalActivityManager.java:347)
04-25 15:03:11.332: W/System.err(16710):    at android.widget.TabHost$IntentContentStrategy.getContentView(TabHost.java:749)
04-25 15:03:11.342: W/System.err(16710):    at android.widget.TabHost.setCurrentTab(TabHost.java:413)
04-25 15:03:11.362: W/System.err(16710):    at android.widget.TabHost.addTab(TabHost.java:240)
04-25 15:03:11.362: W/System.err(16710):    at com.fiche.applicationpfe.Tabhost.onCreate(Tabhost.java:29)
04-25 15:03:11.382: W/System.err(16710):    at android.app.Activity.performCreate(Activity.java:5104)
04-25 15:03:11.382: W/System.err(16710):    at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1080)

我已经尝试过在其他类似帖子中提出的解决方案,例如setcontentview,检查listview是否为null并检查所使用的列表是否为空。

0 个答案:

没有答案