salut à tous

j'aimerais créer une vue personnalisée contenant des textview et d'imageview aux quels je vais insérer de façon dynamique l’image et les textest.
La création de la vue n'a pas été un problème mais l'insertion dynamique en est un j'ai essayer une idée que mais j'ai pas une de satisfaction.Tous aide sera la bienvenue j'en ai besoin

voici le code java de ma vue personnalisée
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
import android.widget.RelativeLayout;
import android.widget.TextView;
import android.content.Context;
import android.util.AttributeSet;
import android.view.View;
import android.widget.TableRow;
import android.widget.ImageView;
 
import com.rami.essai.R;
 
public class AnnonceView extends RelativeLayout {
 
	private ImageView imagprofil = null;
	private TextView nomprofil = null;
	private TextView numero = null;
	private TextView contenuanonc = null;
 
	public AnnonceView(Context context, AttributeSet attrs, int
			defStyle) {
			super(context, attrs, defStyle);
			init();
			}
			public AnnonceView(Context context, AttributeSet attrs) {
			super(context, attrs);
			init();
			}
			public AnnonceView(Context context) {
			super(context);
			init();
			}
 
			private void init() {
				inflate(getContext(), R.layout.annonceview, this);
 
				}
 
 
 
			public void bind(int image, int text, int text2 ,int text3 ) {
				imagprofil.setImageResource(image);
				nomprofil.setText(getResources().getString(text));
				numero.setText(getResources().getString(text2));
				contenuanonc.setText(getResources().getString(text3));
				   addView(imagprofil, R.id.imagprofil);
				   addView(nomprofil, R.id.nomprofil);
				   addView(numero, R.id.numero);
				   addView(contenuanonc, R.id.contenuanonc);
 
			}
 
}
Ensuite ici c'est le contenu de mon adapter
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
import java.util.ArrayList;
import java.util.List;
 
import android.content.Context;
import android.view.View;
import android.view.ViewGroup;
import android.widget.BaseAdapter;
 
public class AnnonceViewAdapter extends BaseAdapter {
	private static final int TYPE_HEADER = 0;
	private static final int TYPE_BODY = 1;
	private static final int TYPE_MAX = 2;
	private List<Integer> mTypes = new ArrayList<Integer>();
	private AnnonceViewModel mModelHeader = null;
	private List<Integer> mModelBody = new ArrayList<Integer>();
	private Context mContext;
 
	public AnnonceViewAdapter(Context context) {
		mContext = context;
	}
 
	@Override
	public int getViewTypeCount() {
		return TYPE_MAX;
	}
 
	@Override
	public int getItemViewType(int position) {
		return mTypes.get(position);
	}
 
	@Override
	public int getCount() {
		if (mModelHeader == null)
			return mModelBody.size();
		return 1 + mModelBody.size();
	}
 
	@Override
	public Object getItem(int position) {
		int type = getItemViewType(position);
		return type == TYPE_HEADER ? mModelHeader : mModelBody
				.get(position - 1);
	}
 
	@Override
	public long getItemId(int position) {
		return position;
	}
 
	@Override
	public View getView(int position, View convertView, ViewGroup parent) {
		View v = null;
		int type = getItemViewType(position);
 
		if (convertView == null) {
			switch (type) {
			case TYPE_HEADER:
				v = new AnnonceView(mContext);
				break;
 
			}
		} else {
			switch (type) {
			case TYPE_HEADER:
				v = (AnnonceView) convertView;
				break;
 
		}
 
		switch (type) {
		case TYPE_HEADER:
			AnnonceViewModel model1 = (AnnonceViewModel) getItem(position);
			((AnnonceView) v).bind(model1.getImageRessource(),
					model1.getTextRessource(), model1.getTextRessource2(), model1.getTextRessource3());
 
			break;
		}
		}
 
		return v;
 
 
	}
 
	public void bindHeader(AnnonceViewModel model) {
		mModelHeader = model;
		mTypes.add(TYPE_HEADER);
	}
 
	public void bindBody(List<Integer> model) {
		mModelBody = model;
		for (int i = 0; i < model.size(); i++) {
			mTypes.add(TYPE_BODY);
		}
	}
}
Ici c'est le contenu de la classe qui me permet d’insérer les données dans ma vue personnelle
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
public class AnnonceViewModel {
	private int mImageRessource;
	private int mTextRessource;
	private int mTextRessource2;
	private int mTextRessource3;
 
	public AnnonceViewModel(int image, int text, int text2, int text3) {
		super();
		this.mImageRessource = image;
		this.mTextRessource = text;
		this.mTextRessource2 = text2;
		this.mTextRessource3 = text3;
	}
 
	public int getImageRessource() {
		return mImageRessource;
	}
 
	public int getTextRessource() {
		return mTextRessource;
	}
 
	public int getTextRessource2() {
		return mTextRessource2;
	}
 
	public int getTextRessource3() {
		return mTextRessource3;
	}
}
Étant données que j'ai utilisé un fragment voici le contenu de l’activité auquel le fragment est attaché
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
import android.app.Activity;
import android.os.Bundle;
import android.view.Menu;
import android.view.MenuItem;
import android.os.Bundle;
import android.support.v4.app.FragmentActivity;
 
import com.rami.essai.R;
 
public class EssaiActivity extends FragmentActivity {
 
	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.activity_essai2);
	}
}
voici le contenu de mon fichiers xml d'affichage de la vue personnalisée qui est attacher à un fragment
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:layout_marginBottom="10dp"
    android:layout_marginLeft="10dp"
    android:layout_marginRight="10dp"
    android:layout_marginTop="10dp"
    android:background="#FFFFFF" >
 
    <ImageView
        android:id="@+id/imagprofil"
        android:layout_width="40dp"
        android:layout_height="40dp"
        android:layout_marginLeft="10dp"
        android:layout_marginTop="10dp"
        />
 
	<TextView 
        android:id="@+id/nomprofil"
        android:text=""
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginTop="10dp"
        android:layout_toRightOf="@id/imagprofil"
        android:textSize="20sp"
        android:layout_marginLeft="10dp"/>
 
 
    <TextView 
        android:id="@+id/numero"
        android:text=""
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginTop="5dp"
        android:layout_toRightOf="@id/nomprofil"
        android:textSize="20sp"
        android:layout_marginLeft="10dp"/>
 
 
 
    <TextView 
        android:id="@+id/contenuanonc"
        android:text=""
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_marginTop="20dp"
        android:layout_below="@id/imagprofil"
        android:textSize="20sp"
        android:layout_marginLeft="10dp"/>
 
 
    <TextView 
        android:id="@+id/persinteresser"
        android:layout_below="@id/contenuanonc"
        android:layout_marginTop="10dp"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Intéressé"
        android:textSize="18sp"
        android:layout_marginLeft="10dp"
        />
 
    <TextView 
        android:id="@+id/commentaire"
        android:layout_below="@id/contenuanonc"
        android:layout_toRightOf="@id/persinteresser"
        android:layout_marginTop="10dp"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Commentaires"
        android:textSize="18sp"
        android:layout_marginLeft="15dp"
        />
 
 
 
   <TableRow 
        android:id="@+id/interess"
        android:layout_below="@id/persinteresser"
        android:layout_marginTop="20dp"
        android:orientation="vertical"
        android:layout_marginLeft="10dp"
        android:layout_weight="1"
        android:layout_width="wrap_content"
        android:layout_height="50dp">
 
            <TextView 
                 android:id="@+id/boutoninteresser"
                 android:layout_width="match_parent"
                 android:layout_height="wrap_content"
                 android:text="Je suis interessé"
                 android:textSize="20sp"
                 android:textStyle="bold"
                 android:layout_gravity="center"
                 android:gravity="center"
                 android:layout_marginLeft="5dp"/>
 
   </TableRow>
 
 
   <TableRow 
        android:id="@+id/commenter"
        android:layout_below="@id/persinteresser"
        android:layout_marginTop="20dp"
        android:orientation="vertical"
        android:layout_weight="1"
        android:layout_marginRight="10dp"
        android:layout_marginLeft="5dp"
        android:layout_toRightOf="@id/interess"
        android:layout_width="wrap_content"
        android:layout_height="50dp">
 
       <TextView 
                 android:id="@+id/boutoncommenter"
                 android:layout_width="match_parent"
                 android:layout_height="wrap_content"
                 android:text="Commenter"
                 android:textStyle="bold"
                 android:textSize="18sp"
                 android:layout_gravity="center"
                 android:gravity="center"
                 android:layout_marginLeft="5dp"/>
 
   </TableRow>
 
 
</RelativeLayout>
voici le contenu du fragment de la vue personnaliée
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
import android.app.Activity;
 
import com.rami.essai.AnnonceView;
import android.os.Bundle;
import android.view.Menu;
import android.view.MenuItem;
import android.widget.LinearLayout;
import android.widget.RadioGroup.LayoutParams;
import android.widget.RelativeLayout;
import android.widget.AdapterView;
import android.widget.TextView;
import android.widget.ImageView;
import android.view.LayoutInflater;
import android.support.v4.app.Fragment;
import android.view.ViewGroup;
import android.view.View;
import android.widget.AdapterView;
import android.support.v4.app.ListFragment;
 
public class Essai extends Fragment {
 
	@Override
	public View onCreateView(LayoutInflater inflater, ViewGroup container,
			Bundle savedInstanceState) {
		return vue;
 
	}
	@Override
	public void onActivityCreated(Bundle savedInstanceState) {
		super.onActivityCreated(savedInstanceState);
 
		AnnonceViewModel publi = new AnnonceViewModel(
				R.drawable.bn_12, R.string.nomprof , R.string.numero, R.string.annonce);
		AnnonceViewAdapter adapter = new AnnonceViewAdapter(
				getActivity());
		adapter.bindHeader(publi);
 
 
 
 
 
 
 
 
 
	}
	}
Ici c'est le contenu du fichier xml lier a l'activité
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical"
    android:background="#E7F4F0"
    android:id="@+id/affiche"
    tools:context="${relativePackage}.${activityClass}" >
 
    <com.rami.essai.AnnonceView
        android:id="@+id/ann"
         android:layout_width="match_parent"
        android:layout_height="wrap_content"/>
 
 
</LinearLayout>