J'ai vraiment besoin d'aide sur ce point parce que c'est la seule chose qui ne fonctionne pas dans mon application. J'ai un listview géré par un adaptateur qui étend BaseAdapter.android onClick événement ne tirant pas
Dans la fonction getview, j'utilise convertView pour configurer OnClickListener. Ce OnClickListener fonctionne bien quand je touche l'écran mais si j'utilise la boule de commande du HTC Desire, je vois la ligne qui clignote sur l'écran, mais le OnClickListener n'est pas appelé ...
J'ai lu le android guide de dev: http://developer.android.com/guide/topics/ui/ui-events.html et son dire que je devrais recevoir un événement onClick de la boule de commande ...
Im mettant ici mon code getview au cas où quelqu'un verrait quelque chose d'étrange. Si vous avez une idée de ce que je peux faire, s'il vous plaît faites le moi savoir.
public View getView(int position, View convertView, ViewGroup parent) {
//ici on va utiliser un mécanisme de cache avec le Tag Holder
MyTag holder;
if (convertView == null){
//On se branche sur le bon layout
// convertView = inflater.inflate(android.R.layout.simple_list_item_2, null)
convertView = inflater.inflate(R.layout.twolines, null);
holder = new MyTag();
//on récupère les éléments du layout dans le holder
holder.txtData = (TextView)convertView.findViewById(R.id.productTitle);
holder.txtExtra = (TextView)convertView.findViewById(android.R.id.text2);
holder.imgScreenshot = (ImageView)convertView.findViewById(R.id.Screenshot);
holder.imgFlag = (ImageView)convertView.findViewById(R.id.Flag);
//holder.mLoginButton = (LoginButton) convertView.findViewById(R.id.login);
holder.mPostButton = (ImageView) convertView.findViewById(R.id.postButton);
//sauvegarde du holder
convertView.setTag(holder);
} else {
holder = (MyTag)convertView.getTag();
}
//Facebook post button management
holder.mPostButton.setOnClickListener((OnClickListener) new OnPostClickListener(convertView.getContext(),mFacebook, Long.toString(data[position].videoId), data[position].title, data[position].publisher, data[position].imageUrl));
holder.mPostButton.setImageResource(com.cedemo.scan.utils.getPostButtonResId());
//data update
if(data[position].title != null)
holder.txtData.setText(data[position].title);
if(data[position].publisher != null)
holder.txtExtra.setText(data[position].publisher);
//get and set the language flag
if(data[position].language != null)
holder.imgFlag.setImageResource(com.cedemo.scan.utils.getFlag(data[position].language));
//set the screenshot
if(data[position].myVideoScreenshotBm != null)
holder.imgScreenshot.setImageBitmap(data[position].myVideoScreenshotBm);
/* =================================================================
THIS FUNCTION IS NOT CALLED WHEN I CLICK ON THE TRACKBALL
BUT IS CALLED WHEN I TOUCH THE SCREEN.
WHEN I USE THE TRACKBALL THE SELECTED ROW IS FLASHING ONCE.
================================================================= */
//set the click mechanic if there is a valid video url
if(data[position].url != null) {
convertView.setOnClickListener((OnClickListener) new OnProductClickListener(position));
}
return convertView;
}
Utilisez-vous réellement la boule de commande pour cliquer sur l'élément, ou faites-vous simplement défiler dessus? – Jwsonic
pour faire défiler puis cliquer. – Fabien