2012-03-28 125 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