elementi di una gridview appaiono in ordine casuale invece di quello deciso da me

marcellino247

Nuovo Utente
4 Mag 2015
10
0
1
Salve a tutti, io ho un problema con una gridView di immagini.
Ho messo tutte le immagini in un array, ma quando la griglia viene visualizzata le immagini risultano messe a caso invece che nell'ordine che ho deciso.
Questo è il mio codice, implementato ispirandomi a vari tutorial trovati in giro (sì, sono nuovo sia in Android che nella programmazione in generale):

la main activity:

Codice:
    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:textAppearance="?android:attr/textAppearanceLarge"
        android:text="Clicca sull'immagine per ingrandire"
        android:id="@+id/textView2"
        android:layout_gravity="center_horizontal"
        android:textAlignment="center"
        android:paddingBottom="10sp"
        android:textColor="@color/white"
        android:textSize="@dimen/text_size"/>

    <GridView xmlns:android="http://schemas.android.com/apk/res/android"
        android:id="@+id/grid_view"
        android:layout_width="fill_parent"
        android:layout_height="fill_parent"
        android:numColumns="auto_fit"
        android:columnWidth="300dp"
        android:horizontalSpacing="10dp"
        android:verticalSpacing="10dp"
        android:gravity="center"
        android:stretchMode="columnWidth" >
    </GridView>


il relativo codice java:

Codice:
package ...;

import android.content.Intent;
import android.support.v7.app.ActionBarActivity;
import android.os.Bundle;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.widget.AdapterView;
import android.widget.GridView;

public class Bambini14 extends ActionBarActivity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_bambini14);

        GridView gridView = (GridView) findViewById(R.id.grid_view);

        // Instance of ImageAdapter Class
        gridView.setAdapter(new ImageAdapter(this));

        /**
         * On Click event for Single Gridview Item
         * */
        gridView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
            @Override
            public void onItemClick(AdapterView<?> parent, View v,
                                    int position, long id) {

                // Sending image id to FullScreenActivity
                Intent i = new Intent(getApplicationContext(), FullImageActivity.class);
                // passing array index
                i.putExtra("id", position);
                startActivity(i);
            }
        });
    }


    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
        // Inflate the menu; this adds items to the action bar if it is present.
        getMenuInflater().inflate(R.menu.menu, menu);
        return true;
    }

    @Override
    public boolean onOptionsItemSelected(MenuItem item) {
        // Handle action bar item clicks here. The action bar will
        // automatically handle clicks on the Home/Up button, so long
        // as you specify a parent activity in AndroidManifest.xml.
        int id = item.getItemId();

        //noinspection SimplifiableIfStatement
        if (id == R.id.action_settings) {
            return true;
        }

        return super.onOptionsItemSelected(item);
    }
}


L'Image Adapter:

Codice:
package com.example.valeria.Flexibilia_abbigliamento_per_danze_caraibiche_by_DDLAB;
import android.content.Context;
import android.view.View;
import android.view.ViewGroup;
import android.widget.BaseAdapter;
import android.widget.GridView;
import android.widget.ImageView;

public class ImageAdapter extends BaseAdapter {
    private Context mContext;

    // Keep all Images in array
    public Integer[] mThumbIds = {
            R.drawable.max27a1ridotta, R.drawable.max27b1ridotta,
            R.drawable.bambini14max27c1ridotta, R.drawable.bambini14max29a1ridotta,
            R.drawable.bambini14max29b1ridotta, R.drawable.bambini14max30a1ridotta,
            R.drawable.bambini14max30b1ridotta, R.drawable.bambini14max33a1ridotta,
            R.drawable.bambini14max33b1ridotta, R.drawable.bambini14max36a1ridotta,
            R.drawable.bambini14max38a1ridotta, R.drawable.bambini14max38b1ridotta,
            R.drawable.bambini14max281ridotta, R.drawable.bambini14max311ridotta,
            R.drawable.bambini14max321ridotta, R.drawable.bambini14max341ridotta,
            R.drawable.bambini14max351ridotta, R.drawable.bambini14max371ridotta,
            };

    // Constructor
    public ImageAdapterBambini14(Context c) {
        mContext = c;
    }

    @Override
    public int getCount() {
        return mThumbIds.length;
    }

    @Override
    public Object getItem(int position) {
        return mThumbIds[position];
    }

    @Override
    public long getItemId(int position) {
        return 0;
    }

    @Override
    public View getView(int position, View convertView, ViewGroup parent) {
        ImageView imageView;
        if (convertView == null) {
            imageView = new ImageView(mContext);
            imageView.setImageResource(mThumbIds[position]);
            imageView.setScaleType(ImageView.ScaleType.CENTER_INSIDE);

            imageView.setLayoutParams(new GridView.LayoutParams(350, 300));
        } else {
            imageView = (ImageView) convertView;
        }


        return imageView;
    }
}

Come dicevo, viene visualizzata una griglia con il giusto numero di elementi, ma le immagini al loro interno sono casuali invece che nell'ordine da me scelto, molte vengono anche ripetute più volte.
Essendo che sono un pivellino, con tutto questo codice preso qua e là magari ho semplicemente messo più codice di quello che ci vorrebbe, o chissà che altro.
Qualcuno riesce a capire dove potrebbe essere l'errore?
Grazie!
 

marcellino247

Nuovo Utente
4 Mag 2015
10
0
1
risolto, ecco il codice corretto:

Codice:
if(convertView ==null){
imageView =newImageView(mContext);
imageView.setScaleType(ImageView.ScaleType.CENTER_INSIDE);
imageView.setLayoutParams(newGridView.LayoutParams(350,300));
}else{
imageView =(ImageView) convertView;
}
imageView.setImageResource(mThumbIds[position]);
return imageView;
 
Discussioni simili
Autore Titolo Forum Risposte Data
blips Racchiudere una serie di elementi in un div jQuery 2
A come modificare gli elementi di una lista e gli editText? Sviluppo app per Android 0
asevenx Realizzare modulo per selezionare elementi da una lista PHP 1
felino Array: eliminare gli elementi che soddisfano una condizione PHP 5
L Selezione elementi nel menù in base ad una select jQuery 1
ypsilon86 Mostra e Nascondi elementi di una tabella MySql PHP 9
I Inserimento elementi all'interno di una tabella HTML e CSS 2
mircop Raggruppare elementi di una tabella PHP 2
C Inserire elementi array in una select Javascript 2
G Creare Elementi in una div Javascript 7
M Script da eseguire su più elementi div in una singola pagina web Javascript 0
F Creare elementi html con javascript Javascript 4
R Includere elementi array fra apici PHP 1
A Contare gli elementi di un array PHP 13
T Contatore alla rovescia su più elementi simultaneamente Javascript 4
S [PHP] Estrarre elementi array su più variabili PHP 5
L [Java] Aggiungere elementi ad array JSON Java 0
R Visualizzazione elementi Access MS Access 2
D Elementi duplicati su blog SEO e Posizionamento 1
S elementi statistici - Matrice e Gestione Array PHP o Javascript Javascript 0
M [HTML] problema spazio aggiuntivo tra elementi <li> di menu a tendina HTML e CSS 1
Raziel84 [Java] Combinazione elementi matrice Java 0
N Dialog performance con tanti elementi jQuery 2
alessandra86 [PHP] Elementi di un array non visualizzabili PHP 7
D [PHP] Elementi tabella in orizzontale e NON Verticale PHP 12
asevenx modificare lista elementi togliendo l'elemento selezionato jQuery 1
S [HTML] Comportamento di due elementi block level flottanti HTML e CSS 2
S [Javascript] [HTML] problema nella stampa degli elementi della pagina Javascript 3
F [Javascript] Problema funzione jquery con elementi css esterni Javascript 1
C [PHP] RISOLTO - Eliminare elementi duplicati da array multidimensionale PHP 1
F aggiungere codice dopo n elementi jquery jQuery 1
JeanWolf [Php] Elementi comuni di due array PHP 29
Papalla CSS3 - immagine di sfondo con elementi che appaiono col mouse hover HTML e CSS 4
teoxs2508 [HTML] Posizionamento elementi su pagina web HTML e CSS 5
JackIlPazzo Assegnare un id ad elementi con parser PHP 2
asevenx Selezionare elementi da un elenco in modo dinamico e inviarli al database PHP 0
N selezione elementi Javascript 0
C array_rand prende elementi casuali diversi? PHP 6
Marco_88 Verificare la selezione degli elementi dom jQuery 2
X Funzione onscroll relativa a elementi multipli Javascript 0
N Dare id ad elementi classe jQuery 1
otto9due Accesso agli elementi <![CDATA[ ... ]]> di un file XML con SimpleXML e PHP PHP 2
V Scorrere elementi DOM e prendere dei valori Javascript 8
D SELECT Singoli elementi PHP 3
filomeni Elementi obsoleti SEO e Posizionamento 1
felino [Excel] Disposizione elementi per colonna Windows e Software 1
G Elementi a scomparsa Java 2
A passaggio dei singoli elementi elementi da json object a array Ajax 4
Devil-94 creare elementi sopra altri elementi. Javascript 1
Devil-94 Creazione elementi DOM OGNI volta con sempre un nuovo id. Javascript 1

Discussioni simili