问题描述
我有一个,每个及其项目是从ListView的组成部分 ImageViews
和 TextViews
,
我想,当我在specefic 的ImageView
点击,一些code将被执行,在那里我应该把这个code是它在 onItemClick
方法?
公共类EspaceClientUplodedProducts扩展活动实现OnItemClickListener {清单< Produit> lesProduits =新的ArrayList< Produit>();
ListView的lvListe;
ProductsDataSource的produitSource;@覆盖
保护无效的onCreate(捆绑savedInstanceState)
{
super.onCreate(savedInstanceState);
的setContentView(R.layout.espaceclientuploads); produitSource =新ProductsDataSource的(本);
produitSource.open();
lesProduits = produitSource.getAllUploads(); lvListe =(ListView控件)findViewById(R.id.UploadListView);
UploadedAdapter适配器=新UploadedAdapter(这一点,lesProduits);
lvListe.setAdapter(适配器);
lvListe.setOnItemClickListener(本);
}@覆盖
公共无效onItemClick(适配器视图<>母公司,观景,INT位置,长的ID)
{}
@覆盖
保护无效的onPause(){
produitSource.close();
super.onPause();
}
在getView code:
公共查看getView(INT位置,查看convertView,父母的ViewGroup){ ViewHolder持有人;
如果(convertView == NULL)
{
持有人=新ViewHolder();
convertView = inflater.inflate(R.layout.espaceclientuploadsource,NULL);
holder.nomduProduit =(TextView中)convertView.findViewById(R.id.UploadedProductName);
holder.prixDuProduit =(TextView中)convertView.findViewById(R.id.UplodedProductPrice);
holder.imageDuProduit =(ImageView的)convertView.findViewById(R.id.Uplodimage);
holder.status =(ImageView的)convertView.findViewById(R.id.UploadedStatus);
holder.delete =(ImageView的)convertView.findViewById(R.id.ImageViewDelete);
convertView.setTag(保持器);
} 其他
{
支架=(ViewHolder)convertView.getTag();
} 位图的BitmapImage = BitmapFactory.de codeFILE(路径+文件分割符+ lesProduits.get(位置).getImage()); 可绘制drawableImage =新BitmapDrawable(BitmapImage的);
holder.imageDuProduit.setImageDrawable(drawableImage);
holder.nomduProduit.setText(lesProduits.get(位置).getNomDuProduit());
holder.prixDuProduit.setText(lesProduits.get(位置).getPrixDuProduit());
holder.delete.setImageResource(R.drawable.delete); 开关(lesProduits.get(位置).getStatus())
{ 案例3:// annonceAccepté
holder.status.setImageResource(R.drawable.accepte);
打破; 案例2:// EN annonce Attente
holder.status.setImageResource(R.drawable.enattente);
打破; 案例1:// annonce拒绝
holder.status.setImageResource(R.drawable.refuse);
打破; 案件0:// produit vendu
holder.status.setImageResource(R.drawable.vendu);
打破;
}
返回convertView;
}
在 UploadedAdapter
在 getView()
你必须要创建的对象的 ImageViews
。
只需设置 onClickListener
来的这些对象 ImageViews
和处理在的onClick 每个ID的基础上,的ImageView
。
I have a ListView where each of its items is composed from some ImageViews
and TextViews
,i want that when i click on a specefic ImageView
, some code will be executed, where should i put this code is it in onItemClick
method?
public class EspaceClientUplodedProducts extends Activity implements OnItemClickListener{
List<Produit> lesProduits= new ArrayList<Produit>();
ListView lvListe;
ProductsDataSource produitSource;
@Override
protected void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.espaceclientuploads);
produitSource=new ProductsDataSource(this);
produitSource.open();
lesProduits=produitSource.getAllUploads();
lvListe= (ListView)findViewById(R.id.UploadListView);
UploadedAdapter adapter = new UploadedAdapter(this, lesProduits);
lvListe.setAdapter(adapter);
lvListe.setOnItemClickListener(this);
}
@Override
public void onItemClick(AdapterView<?> parent, View view, int position, long id)
{
}
@Override
protected void onPause() {
produitSource.close();
super.onPause();
}
the getView code:
public View getView(int position, View convertView, ViewGroup parent) {
ViewHolder holder;
if (convertView==null)
{
holder=new ViewHolder();
convertView = inflater.inflate(R.layout.espaceclientuploadsource, null);
holder.nomduProduit = (TextView)convertView.findViewById(R.id.UploadedProductName);
holder.prixDuProduit = (TextView)convertView.findViewById(R.id.UplodedProductPrice);
holder.imageDuProduit = (ImageView)convertView.findViewById(R.id.Uplodimage);
holder.status = (ImageView)convertView.findViewById(R.id.UploadedStatus);
holder.delete=(ImageView)convertView.findViewById(R.id.ImageViewDelete);
convertView.setTag(holder);
}
else
{
holder = (ViewHolder) convertView.getTag();
}
Bitmap bitmapImage = BitmapFactory.decodeFile(path+File.separator+lesProduits.get(position).getImage());
Drawable drawableImage = new BitmapDrawable(bitmapImage);
holder.imageDuProduit.setImageDrawable(drawableImage);
holder.nomduProduit.setText(lesProduits.get(position).getNomDuProduit());
holder.prixDuProduit.setText(lesProduits.get(position).getPrixDuProduit());
holder.delete.setImageResource(R.drawable.delete);
switch (lesProduits.get(position).getStatus())
{
case 3://annonce Accepté
holder.status.setImageResource(R.drawable.accepte);
break;
case 2://annonce en Attente
holder.status.setImageResource(R.drawable.enattente);
break;
case 1://annonce refusé
holder.status.setImageResource(R.drawable.refuse);
break;
case 0://produit vendu
holder.status.setImageResource(R.drawable.vendu);
break;
}
return convertView;
}
In the UploadedAdapter
in getView()
you must be creating the object of the ImageViews
.
Just set the onClickListener
to the objects of that ImageViews
and handle the click event in the onClick
on the basis of the id of each ImageView
.
这篇关于在一个ListView项的子女点击的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!