2013-05-21 4 views
1

У меня есть ListView, где каждый из его элементов состоит из некоторого ImageViews и TextViews, я хочу, что, когда я нажимаю на specefic ImageView, некоторый код будет выполняться, где я должен поставить этот код это в 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 компонент элемента, например, когда я нажимаю на ImageView, называемый «Удалить 'элемент должен быть удален. –

ответ

1

В UploadedAdapter в getView() вы должны создать объект ImageViews.

Просто установите onClickListener к объектам этого ImageViews и обрабатывать событие щелчка в onClick на основе идентификатора каждого ImageView.

+0

Да, у меня уже есть объект для моего изображения в режиме просмотра. Я не могу понять вторую часть вашего ответа, если вы можете добавить код, это будет полезно. –

+1

опубликуйте код getView UploadedAdapter ... – 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. –

+1

вы можете попробовать второй метод. –

Смежные вопросы