Item su listview

di il
12 risposte

Item su listview

Buongiorno ho 2 activity nella prima una listview, vorrei che a seconda dell'item selezionato sulla listview mi si apra la seconda activity con impostata in background una foto da me scelta qualcuno puo' darmi un suggerimento?

12 Risposte

  • Re: Item su listview

    Ciao! Dato che per aprire la seconda activity devi usare un Intent, puoi anche inserire al suo interno un parametro contenente l'URL dell'immagine (se viene scaricata da internet) o il suo path/URI (se si trova già nella memoria del telefono), in modo che nella seconda activity tu possa leggere questo parametro ed agire diversamente in base al suo valore.
  • Re: Item su listview

    Grazie della, le immagini che devono essere caricate in background nella seconda activity , nn sono ne nella memoria del tel ne scaricate da internet
    ma salvate nella cartella drawable della app , a seconda dell'item selezionato nella prima activity deve aprire l'immagine corrispondente nella seconda. Non so che metodo usare anche perchè con putextra mi sembra di capire che nn si possa fare.
  • Re: Item su listview

    Le immagini presenti nella cartella "res/drawable" sono automaticamente associate dal sistema a un ID numerico (vedi le costanti R.drawable.xxx), di conseguenza potresti inserire nell'Intent l'ID relativo all'immagine da visualizzare.

    Un esempio di codice:
    
    Intent intent = new Intent(...);
    
    intent.putExtra("IMMAGINE", R.drawable.nome_immagine);
    
    startActivity(intent);
    
    Ovviamente nella seconda activity dovrai recuperare questo ID per mostrare l'immagine:
    
    int immagine = getIntent().getIntExtra("IMMAGINE", 0);
    if (immagine != 0) {
        // Setta l'immagine
        ...
    }
    
  • Re: Item su listview

    Ok grazie molte della , ci provo e poi ti dico, grazie ancora
  • Re: Item su listview

    Mi sto esaurendo, ma nn riesco a trovare l'id numerico associato al nome delle mie immagini penso che impazzirò
  • Re: Item su listview

    È semplice: se la tua immagine si chiama "pippo" (cioè è salvata nella cartella "res/drawable-XXX/pippo.jpg", dove XXX può essere vuoto oppure mdpi, xdpi, ecc..) allora l'ID associato sarà R.drawable.pippo
  • Re: Item su listview

    Grazie della lo avevo immaginato ma pensavo di dover associare l'id numerico, mentre mi sembra di capire che devo solo associargli il nome immagine chiaramente con R.drawable.nomeimmagine ok ci provo poi ti faccio sapere grazie della per l'aiuto gentilissima
  • Re: Item su listview

    Markez ha scritto:


    gentilissima
    Sono un maschio

    Comunque di fatto tutti i valori della classe R sono delle costanti numeriche create a compile time. Infatti se vai a vedere l'implementazione della classe R (nella cartella gen) vedrai che ad ogni costante è associato un valore numerico. Dato che questi valori sono generati casualmente è decisamente più comodo usare la constante che non il valore in sé
  • Re: Item su listview

    Ok GENTILISSIMO... provo e poi ti dico
  • Re: Item su listview

    Qui sembra ok
    @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_main);
    
            final ListView lista = (ListView) findViewById(R.id.listView1);
            adapter = new ListViewAdapter(this, titolo, GiornoChiusura,imaggini);
            lista.setAdapter(adapter);
    
            lista.setOnItemClickListener(new AdapterView.OnItemClickListener() {
                @Override
                public void onItemClick(AdapterView<?> ListViewAdapter, final View lista, int position, long id) {
                    final String RIGA = (String)ListViewAdapter.getItemAtPosition(position);
    
                    Intent i = null;
                    switch (position){
                        case 0:
                            i = new Intent(MainActivity.this, Page1.class);
                            i.putExtra("immagine1", "R.drawable.pizza");
                            break;
                        case 1:
                            i = new Intent(MainActivity.this, Page1.class);
                            i.putExtra("immagine2", "R.drawable.volantino");
                            break;
    
                    }
                           startActivity(i);
    e qui che mi blocco
    @Override
        public boolean onTouchEvent(MotionEvent event){
            SGD.onTouchEvent(event);
            return true;
        }
    
        int immagine1 = getIntent().getIntExtra("immagine1", R.drawable.pizza);{
        if (immagine1 != immagine1);
    
    
    
        }
  • Re: Item su listview

    Chiaramente il secondo pezzo di codice e nella seconda activity quella che deve ospitare le 2 immagini
  • Re: Item su listview

    In realtà la logica di scelta dell'immagine dovrebbe già essere nella prima activity, per cui la seconda non dovrebbe far altro che mostrarla a schermo, no? Di conseguenza quell'if (che, fra l'altro, non verrà mai eseguito in quanto la condizione è una contraddizione) a cosa dovrebbe servire?

    Io per la seconda activity mi immaginerei una cosa del tipo:
    
    public class SecondaActivity extends Activity {
        private ImageView image;
        onCreate(...) {
            ...
            image = ...; // Ottieni riferimento all'immagine
            
            int id = getIntent().getIntExtra("immagine1", R.drawable.pizza);
            image.setImageResource(id);
        }
        
    }
    
Devi accedere o registrarti per scrivere nel forum
12 risposte