2016-03-20 15 views
0

Ben içinde bir görünüm şişirmek çalışıyorum benim onCreateView ama bu hatayı almaya devam:hata alınıyor onCreateView

Ben bir görünüm şişirmek için çalışıyor ve esas işim var
The specified child already has a parent. You must call removeView() on the child's parent first. 

Listede yer alan öğelerin miktarını, belirtilen bir doğrusal hizalamaya birçok kez eklemek için. Burada neyi yanlış yapıyorum?

View v = View.inflate(getActivity(), R.layout.list_item, null); 

     for(int i = 0; i < totalItems; i++) { 
      TextView itemNumbers = (TextView) v.findViewById(R.id.itemNumbers); 
      ImageView itemBubbles = (ImageView) v.findViewById(R.id.itemBubbles); 
      itemNumbers.setText("0" + String.valueOf(i+1)); 
      itemBubbles.setTag(i); 
      final int finalI = i; 
      itemBubbles.setOnClickListener(new View.OnClickListener() { 
       @Override 
       public void onClick(View v) { 
        setupValues(finalI); 
       } 
      }); 
      theListItems.addView(v, i); 
     } 

cevap

1

Enflasyonunuzun döngü içinde olması gerekir. Bir kez şişiriyorsun, sonra birden çok kez eklemeye çalışıyorsun. İkinci kez zaten eklenmiş böylece başarısız olur. Her maddenin ayrı ayrı şişirilmesi gerekiyor.

+0

Teşekkürler Şişirmeyi de bilmeniz gerektiğini bilmiyordum, tekrar kullanabileceğini düşündüm. – Lion789

+1

Hayır. Bir şişirme, görünümün bir örneğini oluşturur. Eğer bu bir istisna atmamış olsaydı, her seferinde sadece bir nesne yazmış olurdu. –

+0

Bunu addView'dan önce deneyebilirsiniz: ((ViewGroup) v.getParent()) removeView (v); – ARP