C0dR
- Forum-Beiträge: 2
14.04.2012, 23:51:53 via Website
14.04.2012 23:51:53 via Website
Hallo,
mein problem ist nicht einfach zu beschreiben. Ich hab ein Gridview und fülle es mit ca 90 einträgen.
Jetzt habe ich aber das Problem das wenn ich scrolle, die werte durcheinander springen und einige fehlen und andere doppelt vorkommen. Ich habe es schon mit generierten werten versucht und mir ist aufgefallen das wenn ich nur so viele werte wie auf dem display angezeigt werden ins Gridview packe, gibt es keine probleme. Sobald man aber scrollen muss (ich vermute getView wird dann öfter aufgerufen) gibt es die beschriebenen probleme.
Ich hab schon alles mögliche probiert und gesucht aber ich finde nichts dazu.
Ich hoffe ihr versteht mein Problem. Warscheinlich mach ich nur einen dummen fehler (bin noch recht neu in der Android entwicklung)
Hier mein ImageAdapter
habs schon mit tv.setText(position); versucht und da habe ich dann erkannt dass die Reihenfolgen doch recht durcheinander geraten wenn es viele Items werden.
MfG
mein problem ist nicht einfach zu beschreiben. Ich hab ein Gridview und fülle es mit ca 90 einträgen.
Jetzt habe ich aber das Problem das wenn ich scrolle, die werte durcheinander springen und einige fehlen und andere doppelt vorkommen. Ich habe es schon mit generierten werten versucht und mir ist aufgefallen das wenn ich nur so viele werte wie auf dem display angezeigt werden ins Gridview packe, gibt es keine probleme. Sobald man aber scrollen muss (ich vermute getView wird dann öfter aufgerufen) gibt es die beschriebenen probleme.
Ich hab schon alles mögliche probiert und gesucht aber ich finde nichts dazu.
Ich hoffe ihr versteht mein Problem. Warscheinlich mach ich nur einen dummen fehler (bin noch recht neu in der Android entwicklung)
Hier mein ImageAdapter
1public class ImageAdapter extends BaseAdapter{
2 Context mContext;
3 List<Champion> Champions;
4
5 public ImageAdapter(Context c, List<Champion> champions){
6 mContext = c;
7 Champions = champions;
8 }
9 @Override
10 public int getCount() {
11 return Champions.size();
12 }
13
14 @Override
15 public View getView(int position, View convertView, ViewGroup parent) {
16 // TODO Auto-generated method stub
17 View v;
18 if(convertView==null){
19 Champion c = Champions.get(position);
20 LayoutInflater li = (LayoutInflater) mContext.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
21 v = li.inflate(R.layout.chmp_grid_layout, null);
22 TextView tv = (TextView)v.findViewById(R.id.icon_text);
23 tv.setText(c.Name);
24 ImageView iv = (ImageView)v.findViewById(R.id.icon_image);
25
26 iv.setImageBitmap(c.Icon);
27 }
28 else
29 {
30 v = convertView;
31 }
32 return v;
33 }
34 @Override
35 public Object getItem(int arg0) {
36 return null;
37 }
38 @Override
39 public long getItemId(int arg0) {
40 return 0;
41 }
42 }
2 Context mContext;
3 List<Champion> Champions;
4
5 public ImageAdapter(Context c, List<Champion> champions){
6 mContext = c;
7 Champions = champions;
8 }
9 @Override
10 public int getCount() {
11 return Champions.size();
12 }
13
14 @Override
15 public View getView(int position, View convertView, ViewGroup parent) {
16 // TODO Auto-generated method stub
17 View v;
18 if(convertView==null){
19 Champion c = Champions.get(position);
20 LayoutInflater li = (LayoutInflater) mContext.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
21 v = li.inflate(R.layout.chmp_grid_layout, null);
22 TextView tv = (TextView)v.findViewById(R.id.icon_text);
23 tv.setText(c.Name);
24 ImageView iv = (ImageView)v.findViewById(R.id.icon_image);
25
26 iv.setImageBitmap(c.Icon);
27 }
28 else
29 {
30 v = convertView;
31 }
32 return v;
33 }
34 @Override
35 public Object getItem(int arg0) {
36 return null;
37 }
38 @Override
39 public long getItemId(int arg0) {
40 return 0;
41 }
42 }
habs schon mit tv.setText(position); versucht und da habe ich dann erkannt dass die Reihenfolgen doch recht durcheinander geraten wenn es viele Items werden.
MfG
Empfohlener redaktioneller Inhalt
Mit Deiner Zustimmung wird hier ein externer Inhalt geladen.
Mit Klick auf den oben stehenden Button erklärst Du Dich damit einverstanden, dass Dir externe Inhalte angezeigt werden dürfen. Dabei können personenbezogene Daten an Drittanbieter übermittelt werden. Mehr Infos dazu findest Du in unserer Datenschutzerklärung.