2011-02-11 4 views
0

Dans mon code j'ai juste utilisé deux listview et deux CustomAdapter pour ce deux listView, dans lequel first listview est implémenté par un CustomAdapter, à partir de ce CustomAdapter je veux juste appeler un autre (Activity/Other Adaptateur personnalisé pour la deuxième listview) .Il donne exception commeAppelé autre Activity/CustomAdapter d'un customadapter

java.lang.IllegalStateException: services système non disponible à Activités avant onCreate()

private LayoutInflater mInflater; 
    ViewFlipper vfWall; 
    ImageView ivComments; 
    TextView tvComments; 
    ListView lvComments; 
    WallCustom2 adapterForComments; 
    ImageDownloader imageDownloader = new ImageDownloader(); 
    private static final String[] URLS = 
    { 
     "http://lh5.ggpht.com/_mrb7w4gF8Ds/TCpetKSqM1I/AAAAAAAAD2c/Qef6Gsqf12Y/s144-c/_DSC4374%20copy.jpg", 
    }; 
    String[] itms={"hey dude kya kar raha hai.........."}; 

    public WallCustom(Context context,ViewFlipper vfWall,ImageView ivComments,TextView tvComments,ListView lvComments) 
    { 
     this.ivComments=ivComments; 
     this.tvComments=tvComments; 
     this.lvComments=lvComments; 
     this.mInflater = LayoutInflater.from(context); 
     this.vfWall=vfWall; 
    } 

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

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

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

    public View getView(final int position, View convertView, ViewGroup parent) { 
     // TODO Auto-generated method stub 
     final ViewHolder holder; 
     if (convertView == null) 
     { 
      convertView = mInflater.inflate(R.layout.wallcustom, null); 
      holder = new ViewHolder(); 
      holder.Image = (ImageView) convertView.findViewById(R.id.ivImageWallCustom); 
      holder.Message= (TextView) convertView.findViewById(R.id.tvMessageWallCustom); 
      holder.comments= (TextView) convertView.findViewById(R.id.tvExtraWallCustom); 
      convertView.setTag(holder); 
     } 
     else 
     { 
      holder = (ViewHolder) convertView.getTag(); 
     } 

     if(imageDownloader.download(URLS[position],holder.Image)!=null) 
     { 
      holder.Image.setImageBitmap(imageDownloader.download(URLS[position],holder.Image)); 
     } 
     holder.Message.setText("hey dude kya kar raha hai.........."); 
     holder.comments.setText("Comments "); 

     holder.comments.setOnClickListener(new View.OnClickListener() 
     { 
      public void onClick(View v) 
      { 
       if(imageDownloader.download(URLS[position],ivComments)!=null) 
       { 
        ivComments.setImageBitmap(imageDownloader.download(URLS[position],ivComments)); 
       } 
       tvComments.setText(itms[position]); 
       Wall wallobj=new Wall(); 
       adapterForComments=wallobj.ListViewForComments(); // gives object of second custom adapter 
       lvComments.setAdapter(adapterForComments); // lvComments my second list view in which i want to set second custom adapter 
       vfWall.showNext(); 
      } 
     }); 

     return convertView; 
    } 

    class ViewHolder 
    { 
     ImageView Image; 
     TextView Message; 
     TextView comments; 
    } 
+0

Indiquez le code de l'adaptateur personnalisé. –

Répondre

1
java.lang.IllegalStateException: System services not available to Activities before onCreate() 

Ce message d'erreur est assez simple. Vous essayez d'utiliser un service système, tel que LayoutInflater, à partir du constructeur ou de l'initialisateur d'une activité. N'essayez pas d'utiliser LayoutInflater jusqu'au onCreate() au plus tôt.

0

Vous pouvez utiliser systemServide (InflaterService) qui ne peut pas être utilisé jusqu'à ce que l'événement oncreate() soit appelé. Donc, le message d'erreur de la console est simple à comprendre.

Questions connexes