在一个ListView项的子女点击 [英] On a ListView item's child click

查看:120
本文介绍了在一个ListView项的子女点击的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我有一个,每个及其项目是从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项的子女点击的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆