Ich möchte in jeder Zeile der Listenansicht N ImageViews anzeigen. Die Anzahl der ImageViews hängt vom Wert des JSON-Parsings ab. Es kann jedes Mal 2 oder 3 oder 4 sein, wenn ich JSON vom Server abrufe.
Also kann ich kein statisches XML verwenden, indem ich inflate verwende. daher entschied ich mich, dynamische Ansicht in der getView-Methode zu erstellen und N ImageViews zur Ansicht hinzuzufügen
Ich schreibe folgenden Code, aber es zeigt immer noch nur einen ImageView und der horizontale Scroll funktioniert überhaupt nicht..
jede Hilfe wird geschätzt
public class MyAdapter extends BaseAdapter{
private LayoutInflater inflater;
private ArrayList data;
Context con;
public MyAdapter(Context context, ArrayList data1){
// Speichert das LayoutInflater für eine schnellere Verwendung
inflater = (LayoutInflater)context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
// Setzt die Ereignisdaten
data= data1;
con=context;
}
public View getView(int position, View view, ViewGroup viewgroup) {
ViewHolder holder=new ViewHolder(); //unser View-Holder der Zeile
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 einige Eigenschaften setzen
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);
}
//Untertitel einige Eigenschaften setzen
//DAS LAYOUT DURCH CODE ERSTELLEN
hr.addView(layout);
view = hr; //STATT EINES LAYOUTS FÜR DIE ZEILE AUFZUBLASEN, BINDEN ICH ES AN DAS KÜRZLICH ERSTELLTE LAYOUT
//die Ansichten des Halters an die Ansichten des Layouts binden
view.setTag(holder);
Log.w("myapp", "neue Ansicht");
}
else
{
holder = (ViewHolder) view.getTag();
Log.w("myapp", "im Reuse");
}
//restliche Implementierung der Ansicht
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;
}
}