2 votes

Listview.setadapter lève l'exception nullpointer

Le code est le suivant

    public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);

    Intent i = getIntent();

        ArrayList<String> imageUrl = i.getStringArrayListExtra("ImageUrl");
        String[] companyImageUrl = imageUrl.toArray(new String[0]);
            ListView companyList = null;
            LazyAdapter companyListViewAdapter;

            companyList = (ListView)findViewById(R.id.companylist);

            companyListViewAdapter = new LazyAdapter(companyListView.this , companyImageUrl);

            try {
                companyList.setAdapter(companyListViewAdapter);//exception here
            } catch (Exception e) {
                System.out.println(e);
            }
            setContentView(R.layout.company_list);
}

Edit : Code Lazyadapter ajouté

public class LazyAdapter extends BaseAdapter {

private Activity activity;
private String[] data;
private static LayoutInflater inflater=null;
public ImageLoader imageLoader; 

public LazyAdapter(Activity a, String[] d) {
    activity = a;
    data=d;
    inflater = (LayoutInflater)activity.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
    imageLoader= new ImageLoader(activity.getApplicationContext());
}

public int getCount() {
    return data.length;
}

public Object getItem(int position) {
    return position;
}

public long getItemId(int position) {
    return position;
}

public static class ViewHolder{
    public TextView text;
    public ImageView image;
}

public View getView(int position, View convertView, ViewGroup parent) {
    View vi=convertView;
    ViewHolder holder;
    UrlList urlList;

    urlList = XMLParser.urlList;

    if(convertView==null){
        vi = inflater.inflate(R.layout.item, null);
        holder=new ViewHolder();
        holder.text=(TextView)vi.findViewById(R.id.text);;
        holder.image=(ImageView)vi.findViewById(R.id.image);
        vi.setTag(holder);
    }
    else
        holder=(ViewHolder)vi.getTag();

    String[] categoryNameStrings = urlList.getCategoryName().toArray(new String[0]);

    holder.text.setText(categoryNameStrings[position]);
    holder.image.setTag(data[position]);
    imageLoader.DisplayImage(data[position], activity, holder.image);
    return vi;
}

}

5voto

Tanmay Mandal Points 13341

Utilice setContentView(R.layout.company_list); après super.onCreate(savedInstanceState);

2voto

ingsaurabh Points 10892

Mettez cette ligne après le super.onCreate(savedInstanceState);

setContentView(R.layout.company_list);

1voto

vsk Points 912

Lorsque vous obtenez une erreur comme celle-ci, vous devez d'abord vous assurer que vous avez donné le bon fichier xml en tant que

setContentView(R.layout.main) y

listview id (i.e) findViewById(R.id.listview1);

0voto

longhairedsi Points 1514

Qu'est-ce que c'est ?

 UrlList urlList;
 urlList = XMLParser.urlList;

et qu'est-ce qu'il fait ici ?

String[] categoryNameStrings = urlList.getCategoryName().toArray(new String[0]);

Pouvez-vous afficher le journal des erreurs ?

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X