2013-05-21 33 views
1

我有一個地方它的每一個項目都是從一些ImageViewsTextViews, 我想,當我在specefic ImageView點擊,一些代碼會被執行,應該在哪裏我把這個代碼組成的ListView它在onItemClick方法?在一個ListView項的子點擊

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(); 
} 

的getView代碼:

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; 
} 
+1

檢查此答案:http://stackoverflow.com/questions/2468100/android-listview-click-howto 當你得到你的對象,你可以檢查位置或其他東西,做你想要的 – edoardotognoni

+0

我得到了'Md Abdul gafur'同樣的答案,但這不是我要找的,我有一個代碼,我希望它被執行,當我點擊該項目的specefic組件,就像當我點擊名爲'Delete '該項目應該被刪除。 –

回答

1

UploadedAdapter 10你必須創建ImageViews的對象。

只需設置onClickListenerImageViews的對象和每個ImageView的ID的基礎上處理的onClick click事件。

+0

是的,我已經在get view方法中爲我的imageView提供了一個對象。 我不明白你的答案的第二部分,如果你可以把一些代碼,它將是有益的。 –

+1

發佈UploadedAdapter的getView代碼... – bakriOnFire

0

你把這個代碼在

@Override 
public void onItemClick(AdapterView<?> parent, View view, int position, long id) 
{ 

} 

,或者你可以在寫類似的東西

listview.setOnItemClickListener(new AdapterView.OnItemClickListener() { 

     @Override 
     public void onItemClick(AdapterView<?> parent, final View view, 
      int position, long id) { 
     final String item = (String) parent.getItemAtPosition(position); 
     view.animate().setDuration(2000).alpha(0) 
      .withEndAction(new Runnable() { 
       @Override 
       public void run() { 
       list.remove(item); 
       adapter.notifyDataSetChanged(); 
       view.setAlpha(1); 
       } 
      }); 
     } 

    }); 
+0

對不起,但我想要點擊ListView項目的specefic組件。 –

+1

你可以嘗試第二種方法。 –

相關問題