2016-03-31 13 views
0

Oluşturulan her öğe, adı, fiyatı ve miktarı olan Ürün türünde bir nesnedir. Her bir öğenin konumunun bir ızgara görünümünde almaya çalıştığımda, her zaman görünümün ilk öğesini aldığım olur. Sorunumu göndermeden önce diğer birkaç yazıyı izledim ve etiketleri nasıl kullanacağım için her şeyi doğru yapıyorum gibi görünüyor.Her zaman aynı öğeyi alıyorum

enter image description here

Eğer gerekirse:

i artık önemi emülatör çalıştırdığınızda ben

@Override 
public View getView(int position, View convertView, ViewGroup parent) { 
ViewHolder holder = null; 
    if (convertView == null || (convertView.getTag() == null)) { 
     convertView = inflater.inflate(R.layout.listview_values, parent, false); 
     holder = new ViewHolder(); 
     holder.productName = (TextView) convertView.findViewById(R.id.textViewList1); 
     holder.productQuantity = (EditText) convertView.findViewById(R.id.EditTextList2); 
     holder.productPrice = (TextView) convertView.findViewById(R.id.textViewList3); 
     holder.removeProduct = (ImageButton) convertView.findViewById(R.id.removeProduct); 
    } 
    else { 
     holder = (ViewHolder) convertView.getTag(); 
    } 
    convertView.setTag(holder); 
    holder.productName.setText(products.get(position).getProductName()); 
    holder.productQuantity.setText(String.valueOf(products.get(position).getProductQuantity()) + " Un."); 
    holder.productPrice.setText(String.valueOf(products.get(position).getProductPrice())+ " €"); 
    holder.removeProduct.setTag(new Integer(position)); 

    return convertView; 
} 

ve

public void removeProduct(View v) { 

    ImageButton removeProduct = (ImageButton) findViewById(R.id.removeProduct); 
    Integer position = (Integer) removeProduct.getTag(); 

    Product p1 = (Product) adapter.getItem(position); 

    Toast toast = Toast.makeText(this,"You want to remove the item: "+ position +" with the product name: "+ p1.getProductName() + " , quantity: "+ p1.getProductQuantity() 
      + " , price: " + p1.getProductPrice(),Toast.LENGTH_LONG); toast.show(); 
} 

ne öğe i her zaman bu sonucu elde tıklayın daha fazla kod görmek için sadece bana söyle ve ben yayınlayacağım. Şimdiden teşekkürler arkadaşlar. Tekrar

ImageButton removeProduct = (ImageButton) findViewById(R.id.removeProduct) 

yaparak görünümünüzü başlatılıyor çünkü nedenidir

public void removeProduct(View v) {  
    Integer position = (Integer) v.getTag(); 

    Product p1 = (Product) adapter.getItem(position); 

    Toast toast = Toast.makeText(this,"You want to remove the item: "+ position +" with the product name: "+ p1.getProductName() + " , quantity: "+ p1.getProductQuantity() 
      + " , price: " + p1.getProductPrice(),Toast.LENGTH_LONG); toast.show(); 
} 

ve bu artık Tıkladığınız aynı görünümüdür -

+1

içinde geçirilen parametredir: Bunu deneyebilirsiniz: Tamsayı konumu = (Tamsayı) v.getTag(); – ARP

+0

işe yarıyor ama anlamadım, açıklayabilir misiniz? ... yoldan teşekkürler – pMpC

+1

Eğer findViewById yaptığınızda her zaman aynı nesneden etiket alıyorsanız, "v" – ARP

cevap

1
senin removeProduct() değiştirin

. Tıklanan görünümünüz, removeProduct()

+0

parametresinden etiket almak zorundasınız neden bu şekilde çalışmaz ? teşekkürler – pMpC

+0

Cevabımı düzenledim. –

+0

neden convertView nesnesinin değil, removeProduct etiketini alıyorum? – pMpC