ajouter dynamiquement mise en page en méthode getview de l'adaptateur dans android

Je veux afficher le nombre N de imageview dans chaque ligne de la vue liste.
Nombre de imageview dépend json l'analyse de la valeur. il peut être 2 ou 3 ou 4 à chaque fois lorsque j'extrais json à partir du serveur.

donc je ne peux pas utiliser des données xml à l'aide de gonfler.j'ai donc décidé de créer point de vue dynamique dans la méthode getview et ajouter un nombre N de imageview en vue

J'écris code suivant mais il continue d'afficher une imageview de défilement horizontale et ne fonctionnent pas du tout..

toute aide est appréciée

public class MyAdapter extends BaseAdapter{
private LayoutInflater inflater;
private ArrayList<String> data;
Context con;
public MyAdapter(Context context, ArrayList<String> data1){
//Caches the LayoutInflater for quicker use
inflater = (LayoutInflater)context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
//Sets the events data
data= data1;
con=context;
}
public View getView(int position, View view, ViewGroup viewgroup) {
ViewHolder holder=new ViewHolder(); //our view holder of the row
if (view == null) {
HorizontalScrollView hr=new HorizontalScrollView(con);
LinearLayout layout=new LinearLayout(con);
layout.setLayoutParams(new LinearLayout.LayoutParams(LayoutParams.WRAP_CONTENT,LayoutParams.WRAP_CONTENT));
//layout set some properties
for(int i=1;i<2;i++)
{
holder.image =new ImageView(con);
LinearLayout.LayoutParams layoutParams = new LinearLayout.LayoutParams(100*i, 100*i);
holder.image.setLayoutParams(layoutParams);
layout.addView(holder.image);
}
//subtitle set some properties
//CREATING THE LAYOUT THROUGH CODE
hr.addView(layout);
view = hr; //INSTEAD OF INFLATING A LAYOUT FOR THE ROW I JUST BINDED IT TO THE RECENTLY CREATED LAYOUT 
//bind the views of the holder to the views of the layout
view.setTag(holder);
Log.w("myapp", "new view");
} 
else 
{
holder = (ViewHolder) view.getTag();
Log.w("myapp", "in reuse");
}
//rest of implementation of the View
for(int i=0;i<2;i++)
{
holder.image.setImageResource(R.drawable.ic_launcher);
}
return view;
}
static class ViewHolder {
ImageView image;
TextView title;
TextView type;
HorizontalScrollView hr;
}
@Override
public int getCount() {
//TODO Auto-generated method stub
return 4;
}
@Override
public Object getItem(int position) {
//TODO Auto-generated method stub
return null;
}
@Override
public long getItemId(int position) {
//TODO Auto-generated method stub
return 1;
}
}

OriginalL'auteur Swap-IOS-Android | 2013-06-28