elementi di una gridview appaiono in ordine casuale invece di quello deciso da me | Forum Android | AndroidWorld

ATTENZIONE:
L’Utente assume la totale responsabilità anche giuridica per ogni attività da lui svolta e per ogni contenuto pubblicato e/o scambiato. (leggi le condizioni d’uso).

Si invitano gli Utenti a non pubblicare o scambiare alcuna informazione che permetta di risalire, anche indirettamente, alla propria identità o all’identità di terzi (nome, cognome, residenza, email…) e divulgare alcun tipo di dato sensibile proprio o di terzi.

Gentile Utente,
desideriamo informarti che tutti i servizi sono erogati, agli stessi termini e condizioni, da Arnoldo Mondadori Editore S.p.A. quale società incorporante di Banzai Media S.r.l.

X
  1. #1
    Baby Android
    Registrato dal
    Jan 2014
    Residenza
    torino
    Dispositivo
    huawei asend g300
    Operatore
    Vodafone
    Messaggi
    26
    Grazie!
    2
    Ringraziato 0 volte in 0 post

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

    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!

  2. #2
    Baby Android
    Registrato dal
    Jan 2014
    Residenza
    torino
    Dispositivo
    huawei asend g300
    Operatore
    Vodafone
    Messaggi
    26
    Grazie!
    2
    Ringraziato 0 volte in 0 post
    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

  1. 02-07-2014
    0Risposte
  2. 11-07-2013
    0Risposte
  3. Applicazioni che appaiono e scompaiono???
    Da marekct nel forum Sony Tablet S
    04-01-2012
    6Risposte
  4. perché nei messaggi appaiono i nomi della rubrica sim e non di quella google?
    Da ilchimico nel forum Samsung Corby Smartphone (i5500)
    05-01-2011
    10Risposte
  5. Estrattore casuale di una lettera dell'alfabeto inglese
    Da tematobrasca nel forum Applicazioni
    27-12-2010
    0Risposte

Segnalibri

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  

Search Engine Friendly URLs by vBSEO 3.6.1