2011-10-04 19 views
6

Sorun tv2.settext() içinde bir Kaynak $ NotFoundException, neden bir TreeMap, pizza başlığı ve sayımı içinde olduğunu bilmiyorum. Lütfen yardım edin!

Arama:

for (Pizza pizza : list) { 

      if(map.containsKey(pizza.title)) 
      { 

       int i = map.get(pizza.title); 
       map.remove(pizza.title); 

       map.put(pizza.title, i++); 
      } 
      else 
      { 
       map.put(pizza.title, 1); 
      } 
      } 

Pizza:

public class Pizza implements Comparable<String> { 

    public String title; 
    public int rate; 
    public String date; 
    public Bitmap picture; 
    public int id; 
    @Override 
    public int compareTo(String another) { 
     // TODO Auto-generated method stub 
     return this.title.compareTo(another); 
    } 

} 

Hata Kodu:

for (Entry<String, Integer> entry : map.entrySet()) { 

      tv.setText(entry.getKey()); 
      tv2.setText((Integer)entry.getValue()); //Error occures here 

      tv.setGravity(Gravity.LEFT); 
      tv2.setGravity(Gravity.RIGHT); 

      TableRow tr1 = new TableRow(this); 
      tr1.addView(tv); 
      tr1.addView(tv2); 
      tl.addView(tr1, new TableLayout.LayoutParams(
        LayoutParams.FILL_PARENT, 
        LayoutParams.WRAP_CONTENT)); 
      } 
     } 

Hata:

10-04 09:04:40.475: ERROR/AndroidRuntime(954): Caused by: android.content.res.Resources$NotFoundException: String resource ID #0x1 

cevap

23

Değişim tv2.setText((Integer)entry.getValue());

tv2.setText(entry.getValue().toString()); 

bu

TableRow tr1 = new TableRow(this); 

for (Entry<String, Integer> entry : map.entrySet()) { 

     tv.setText(entry.getKey()); 
     tv2.setText((Integer)entry.getValue()); //Error occures here 

     tv.setGravity(Gravity.LEFT); 
     tv2.setGravity(Gravity.RIGHT); 

     tr1.addView(tv); 
     tr1.addView(tv2); 
     tl.addView(tr1, new TableLayout.LayoutParams(
       LayoutParams.FILL_PARENT, 
       LayoutParams.WRAP_CONTENT)); 
     } 
    } 
+0

10-04 09: 22: 40.585: ERROR/AndroidRuntime (1009): Nedeniyle: java.lang.IllegalStateException: Belirtilen çocuğun zaten bir üst bilgisi var. Önce çocuğun ebeveyinde removeView() öğesini çağırmalısınız. Tr1.addView (tv) 'de ' ı ( –

+0

) yanıtımı düzenledim. – Ramakrishna

0
tv2.setText((Integer)entry.getValue()); 

gibi ayrıştırmak yapmak senin Ne yapmaya çalışıyorsunuz bilmiyorum ama belli ki değiliz Integer

0

String için setText için bir R.string.my_title_or_so kullanarak. Bu yönteme ilettiğiniz Integer, R sınıfınızdan geçerli (oluşturulmuş) bir kimlik olmalıdır. Ya da numarayı bir dizeye ör. num + "".

3

Sen kullanmalıdır:

map.remove(pizza.title); 

yazmak için gereken:: map.put(pizza.title, i++); etmiyor ki "koymak" Harita metod eski değiştirir tv2.setText(entry.getValue().toString());

Üstelik aşağıdaki kod satırını gerekmez değer.

İlgili konular