Amoy Posté(e) 4 août 2010 Share Posté(e) 4 août 2010 Bonjour Tout le monde. J'ai un truc qui me casse la tête depuis 2 jours et je veux de l'aide. Je suis nouveau sur le Forum et aussi dans le développement avec Android. Mon problème est celui ci: Je veux créer une liste compose d'image et du texte puis que chaque élément soit Cliquable pour me donner accès à une page web ou à Une autre ACTIVITY.. Voici un petit dessin intuitif: --------------------------------------------------------- ! Photo 1 ! Titre1 ! ! ! ! ..... Details concernant le titre1.... ------------------------------------------------------------------------------ ! Photo 2 ! Titre2 ! ! ! ! ..... Details concernant le titre3.... ------------------------------------------------------------------------------ ! Photo 3 ! Titre3 ! ! ! ! ..... Details concernant le titre3.... ------------------------------------------------------------------------------ ...... Je veux que le résultat ressemble comme l'application de TF1news (se trouvant sur Android MArket). J'ai déjà essaye un code mais il n'aafiche pas comme je le veut et surtout je sais pas comme le faire cliquable. Le voici: Promotion est une classe contenant les String (Titre et Detail); private class TestImageAdapter extends BaseAdapter { private Context mContext; private Promotion[] sPromo; public TestImageAdapter (Context context) { mContext = context; sPromo=aTableauResult; } public int getCount() { return sPromo.length; } public Object getItem(int position) { return position; } public long getItemId(int position) { return position; } public View getView(int position, View convertView, ViewGroup parent) { PromoView sv; if (convertView == null) { sv = new PromoView(mContext, sPromo[position]); } else { sv = (PromoView) convertView; sv.setTitre(); sv.setResume(); } return sv; } } private class PromoView extends LinearLayout { private TextView mTitle; private TextView mResume; private ImageView mImage; private Promotion pr; public PromoView (Context context, Promotion p) { super(context); this.pr=p; this.setOrientation(HORIZONTAL); mImage=new ImageView(context); mImage.setImageResource(R.drawable.icon); addView(mImage,new LinearLayout.LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT)); //addView(mImage,this.getLayoutParams()); LinearLayout info=new LinearLayout(this.getContext()); info.setOrientation(VERTICAL); // ici on construit l'affichage de notre item on peut également le faire dans un xml //ici le titre et la taille du texte avec size mTitle = new TextView(context); mTitle.setText(p.toString()); mTitle.setTextSize(20); info.addView(mTitle, new LinearLayout.LayoutParams(LayoutParams.FILL_PARENT, LayoutParams.WRAP_CONTENT)); // le résumé avec la taille du texte mResume= new TextView(context); mResume.setText(p.toDetail()); mResume.setTextSize(15); //mDialogue.setTextSize(10); info.addView(mResume, new LinearLayout.LayoutParams(LayoutParams.FILL_PARENT, LayoutParams.WRAP_CONTENT)); addView(info,new LinearLayout.LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT)); } /** * Convenience method to set the title of a SpeechView */ public void setTitre() { mTitle.setText(pr.toString()); } /** * Convenience method to set the dialogue of a SpeechView */ public void setResume() { mResume.setText(pr.toDetail()); } En attente de vos réaction, Je vous donnes mes salutations chaleureuses. Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
akex Posté(e) 4 août 2010 Share Posté(e) 4 août 2010 Je ne comprends pas pourquoi tu n'utilises pas simplement une listview (un layout pour la vue parent qui contiendra l'élément ListView, et un autre layout qui décrira l'agencement de l'item qui sera répété). De plus, une de tes méthodes est fausse. Pourquoi renvoyer la position alors que tu veux récupérer l'élément du tableau (le but de getItem) public Object getItem(int position) { return position; } Je l'aurais transformé en public Object getItem(int position) { return [b]sPromo[/b][position]; } Pour les exemples de ListView, y en a un récent dans le forum Activity/Services Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
Kuiplo Posté(e) 4 août 2010 Share Posté(e) 4 août 2010 Regarde ce petit article écrit par Romain Guy pour bien positionner tes vues http://www.curious-creature.org/2009/02/22/android-layout-tricks-1/ Concernant le déclenchement d'action sur le click d'un item de ta liste, il te suffit d'overrider la méthode onListItemClick dans ta ListActivity (je te laisse regarder la doc ou chercher dans les nombreux exemples retournés par Google :)) Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
akex Posté(e) 4 août 2010 Share Posté(e) 4 août 2010 Je viens de répondre au même type de topic : https://forum.frandroid.com/forum/viewtopic.php?id=20568 Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
Amoy Posté(e) 4 août 2010 Auteur Share Posté(e) 4 août 2010 @akex: Au fait Utilisé je l'ai déjà fait. Mai maintenant là je me perds c'est quand je dois ajouter un Élément compose.. De plus je vois que je dois créer un Adapter propos à l'élément que je vais utiliser.. Comment je faire ce la? J'ai deja prépare les layout (il y' en a 2):.. Mais comment je vais les lier je me perds...Tu as quelque chose à me suggère? Voici le layout de chaque element de la liste..... xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="wrap_content" android:layout_height="wrap_content" android:orientation="horizontal"> android:layout_width="wrap_content" android:layout_height="wrap_content"> android:layout_width="fill_parent" android:layout_height="wrap_content"> android:id="@+id/TextView01" android:layout_width="fill_parent" android:layout_height="wrap_content"> android:id="@+id/TextView02" android:layout_width="fill_parent" android:layout_height="wrap_content"> Voici le layout de l'activité principale qui va contenir la ListView android:layout_height="fill_parent" xmlns:android="http://schemas.android.com/apk/res/android" android:id="@+id/test4" android:isScrollContainer="true"> android:layout_height="wrap_content" android:background="@style/style" android:id="@+id/listtest4"> Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
akex Posté(e) 4 août 2010 Share Posté(e) 4 août 2010 Tout dépend à partir de quoi tu alimentes ta liste. Curseur : faudra étendre la classe SimpleCursorAdapter ou une de ses sous classes Array : baseadapter ou une de ses sous classes Je te recommande vivement d'aller voir ici : http://developer.android.com/resources/samples/ApiDemos/src/com/example/android/apis/view/index.html Si tu peux me donner la source d'origine de tes données, je pourrai te dire plus exactement quel adapter prendre et comment feeder ta liste. Je sais déjà que tu dois renseigner une ImageView et deux TextView. Si tu me dis la source (curseur, tableau), je pourrai te donner un exemple de code :). Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
Cyril Mottier Posté(e) 5 août 2010 Share Posté(e) 5 août 2010 Une ListView en wrap_content c'est mal, très mal. Mets là plutôt en fill_parent et vire le LinearLayout inutile Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
Amoy Posté(e) 6 août 2010 Auteur Share Posté(e) 6 août 2010 Bonjour.. Mes donnes données se trouvent dans un ArrayList Class Promo { private String LienImage; private String Titre; private String Detail; private String to // .....getteur et setteur...toString.... La source je l'alimente sans problème. Donc si tu peux me donner l' Adapter nécessaire et comment le mettre dans une liste et le rendre Cliquable(Pour l'utiliser dans une nouvelle activité) ça sera Génial. Merci et Bonne Journée. Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
Recommended Posts
Rejoignez la conversation
Vous pouvez poster maintenant et vous enregistrez plus tard. Si vous avez un compte, connectez-vous maintenant pour poster.