2012-03-28 234 views
-1

我有一個列表視圖,每個項目由三個元素組成:圖片視圖和3個文本視圖,後者包含產品名稱,產品價格和數量,我希望當我點擊該項目時它的相應數量增加一個。 下面的代碼:更改ListView選擇的項目


public class BoissonActivity extends Activity { 
ListView maListViewPerso; 
BaseDeDonne db = new BaseDeDonne(this); 
private static String choix="boisson"; 


public void onCreate(Bundle savedInstanceState) { 
super.onCreate(savedInstanceState); 
setContentView(R.layout.boisson_layout); 
maListViewPerso = (ListView) findViewById(R.id.listviewperso); 
Log.d("Lire: ", "Lire tous les produits.."); 
ArrayList<HashMap<String, Object>> listItem = new ArrayList<HashMap<String, Object>>(); 
HashMap<String, Object> map; 
listItem.clear(); 

List<Produit> produit = db.getSelectProduit(choix); 

for (Produit cn : produit) { 
map = new HashMap<String, Object>(); 
map.put("titre",String.valueOf(cn.getNom())); 
map.put("description","Prix:"+cn.getPrix_produit()); 
map.put("quantite", 0); 
String url="/sdcard/Image_Produits/"+cn.getImage_produit()+".jpg"; 
URL pictureURL = null; 
try { 
pictureURL = new URL(url); 
} catch (MalformedURLException e) { 
// TODO Auto-generated catch block 
e.printStackTrace(); 
} 
Bitmap bitmap = BitmapFactory.decodeFile(url); 

map.put("img", bitmap); 
listItem.add(map); 
String log = "Id: "+cn.getId()+" ,Nom: " + cn.getNom()+ " ,Image: " + cn.getImage_produit() + 
" ,Prix: " + cn.getPrix_produit()+" ,Catégorie: " + cn.getCategorie(); 
Log.d("produits: ", log); 
} 
SimpleAdapter mSchedule = new SimpleAdapter (this.getBaseContext(), listItem, R.layout.affichageitem, 
new String[] {"img", "titre", "description","quantite"}, new int[] {R.id.img, R.id.titre, R.id.description,R.id.quantite}); 
mSchedule.setViewBinder(new MyViewBinder()); 
maListViewPerso.setAdapter(mSchedule); 

我試過,但只有第一個TextView的改變:

maListViewPerso.setOnItemClickListener(new OnItemClickListener() 
     { int compteur=0; 
     public void onItemClick(AdapterView<?> arg0, View arg1, 
       int position, long arg3) { 
       TextView t = (TextView)findViewById(R.id.quantite); 

       t.setText(String.valueOf(compteur)); 
      compteur++; 

      } 
     }); 
+1

這是什麼問題? – prolink007 2012-03-28 16:10:47

+0

我希望當我點擊它的相當數量(textview)增加一個項目 – marouen 2012-03-28 16:23:19

+2

我明白你想要什麼,但是問題是什麼?如果您希望我們爲您編寫代碼,那不會發生。如果您嘗試了某些操作並且無法正常工作,請發佈您的問題和/或錯誤。那麼我們可以幫助你實現你的目標。但是我們大多數人不會將你想要的東西變成代碼。 – prolink007 2012-03-28 16:31:11

回答

0

添加onListItemClick ..

@Override 
public void onListItemClick(ListView l, View v, int position, long id) { 

// Your code here to increment the qty 

} 

編輯

使用傳入的View參數來訪問正確的視圖(我從上面添加的代碼中獲取值,因此它不完全符合我上面顯示的內容)。

TextView t = (TextView) arg1.findViewById(R.id.quantite); 
t.setText(String.valueOf(compteur)); 
+0

我試過,但只有第一TextView的改變: maListViewPerso.setOnItemClickListener(新OnItemClickListener() {\t INT compteur = 0; 公共無效onItemClick(適配器視圖爲arg0,查看ARG1, INT位置,長ARG3){ TextView的T =(TextView的)findViewById(R.id.quantite); t.setText(將String.valueOf(compteur)); \t compteur ++; \t \t } }); – marouen 2012-03-28 16:41:41

+0

當我使用:TextView t =(TextView)findViewById(R.id.quantite); t.setText(將String.valueOf(compteur));即使當我點擊第二項 – marouen 2012-03-28 16:56:56

+0

時,只有第一項被修改您需要選擇正確的視圖。使用傳遞給onItemClick方法的'View v'參數。試試這個:'TextView t =(TextView)v.findViewById(R.id.quantite);' – Barak 2012-03-29 15:47:47