Autore Topic: Problema con una ListView Custom nella modifica dei dati  (Letto 193 volte)

Offline Chicco718

  • Nuovo arrivato
  • *
  • Post: 1
  • Respect: 0
    • Mostra profilo
  • Dispositivo Android:
    Samsung S7 Edge
  • Sistema operativo:
    Windows 10
Problema con una ListView Custom nella modifica dei dati
« il: 31 Dicembre 2017, 14:07:07 CET »
0
Ciao a tutti, premetto che sto studiando Android e Java da circa 3 mesi, molti problemi durante lo studio sono riuscito a gestirmeli ma ora mi sono proprio arenato con una ListView statica custom composta da 2 TextView e 1 ImageView.
Per imparare a gestire il passaggio dei dati tra varie activity ecc. volevo poter modificare tramite in Dialog Custom i campi della ListView che ho clikkato, il problema è che non riesco a passare i dati al Dialog per modificarli e ripassarli alla ListView.
Copio il codice della Main della ListView che sto usando.

package com.example.enricochiamenti.moltiplicazione;

import android.app.Activity;
import android.app.Dialog;
import android.content.Intent;
import android.support.constraint.ConstraintLayout;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.AdapterView;
import android.widget.ArrayAdapter;
import android.widget.EditText;
import android.widget.ImageView;
import android.widget.ListView;
import android.widget.SimpleAdapter;
import android.widget.Toast;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.Random;

public class ListaCustom1 extends Activity {

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main_lista_custom_1);//nome XML ListView MODELLO

        ArrayList<Persona> personaList = new ArrayList<>(); //lista delle persone che la listview visualizzerà

        //Utilizzo del costruttore della classe Persona per impostare i dati che deve visualizzare la ListView
        final Persona [] popolo = {
                new Persona("Anna","Falchi",R.drawable.maura),
                new Persona("Cameron", "Diaz", R.drawable.maura),
                new Persona("Jessica","Alba",R.drawable.maura),
                new Persona("Manuela","Arcuri",R.drawable.maura)};

        //riempimento casuale della lista delle persone
        Random r=new Random();
        for(int i=0;i<10;i++){
            personaList.add(popolo[r.nextInt(popolo.length)]);
        }

        ArrayList<HashMap<String, Object>> dati = new ArrayList<>();

        for(int i=0;i<personaList.size();i++){
            Persona p = personaList.get(i);//Dichiaro oggetto p a cui passo tutti i dati del random
            HashMap<String,Object> personaMap = new HashMap<>();
            personaMap.put("immagine", p.getImmagineP());
            personaMap.put("nome", p.getNome());
            personaMap.put("cognome", p.getCognome());
            dati.add(personaMap);
        }

        String[] chiavi = {"immagine","nome","cognome"}; //dai valori contenuti in queste chiavi
        final int[] to = {R.id.immagineV,R.id.testoPiccolo,R.id.testoGrande};//agli id della view

        //costruzione dell adapter usando il metodo SimpleAdapter()
        SimpleAdapter adapter = new SimpleAdapter(getApplicationContext(),dati,R.layout.lista_custom_1,
                chiavi,//da quali Key adapter prende le informazzioni
                to);//in quali ID deve mettere i valori delle Key

        //Dichiarazione oggetto lista custom
        final ListView LCustom = findViewById(R.id.mainCUS);
        //utilizzo dell'adapter
        LCustom.setAdapter(adapter);//ID della lista MAIN da visualizzare a cui passo la costruzione dell'Adapter
        LCustom.setOnItemClickListener(new AdapterView.OnItemClickListener() {
            @Override
            public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
                int click = position;
                Dialog mod = new Dialog(ListaCustom1.this);
                mod.setContentView(R.layout.modifica_dialogo);
                mod.show();
                EditText testoG = mod.findViewById(R.id.ModTestoG);
                EditText testoP = mod.findViewById(R.id.ModTestoP);
                ImageView imgMod = mod.findViewById(R.id.ModImg);
            }
        });
    }
}

Intanto grazie della pazienza e auguri di buon anno.
Enrico