Autore Topic: ListView Customizzata  (Letto 109 volte)

Offline nio74

  • Nuovo arrivato
  • *
  • Post: 25
  • Respect: 0
    • Mostra profilo
  • Dispositivo Android:
    Samsung S5
  • Sistema operativo:
    Windows 10
ListView Customizzata
« il: 12 Novembre 2016, 16:39:59 CET »
0
Ciao a Tutti devo mettere un button su una casella della ListView in modo che quando schiacciata mi faccia apparire la textView Nascosta vedi foto:

Questo è il mio Adapter che sto costruendo il Divider serve per specificare dei divisori:
Codice: [Seleziona]
public class ArticoloAdapter extends BaseAdapter{

    private ArrayList<Objects>ArticoloArray;
    private LayoutInflater inflater;
    private static final int TYPE_ARTICOLO = 0;
    private static final int TYIPE_DIVIDER = 1;

    public ArticoloAdapter(Context context, ArrayList<Objects> articoloArray, LayoutInflater inflater) {
        ArticoloArray = articoloArray;
        this.inflater = (LayoutInflater)context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
    }

    @Override
    public int getCount() {
        return ArticoloArray.size();
    }

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

    @Override
    public Object getItem(int position) {
        return ArticoloArray.get(position);
    }

    @Override
    public int getViewTypeCount() {
        // TYPE ARTICOLO and TYPE_DIVIDER
        return 2;
    }

    @Override
    public int getItemViewType(int position) {
        if (getItem(position) instanceof Articolo) {
            return TYPE_ARTICOLO;
        }

        return TYIPE_DIVIDER;
    }
    @Override
    public boolean isEnabled(int position) {
        return (getItemViewType(position) == TYPE_ARTICOLO);
    }

    @Override
    public View getView(int position, View convertView, ViewGroup parent) {
        int type = getItemViewType(position);
        if (convertView == null) {
            switch (type) {
                case TYPE_ARTICOLO:
                    convertView = inflater.inflate(R.layout.row_item_search_negozio, parent, false);
                    break;
                case TYIPE_DIVIDER:
                    convertView = inflater.inflate(R.layout.row_header_search_negozio, parent, false);
                    break;
            }
        }

        switch (type) {
            case TYPE_ARTICOLO:
                Articolo articolo = (Articolo) getItem(position);
                TextView name = (TextView)convertView.findViewById(R.id.codice);
                TextView address = (TextView)convertView.findViewById(R.id.descrizione);
                name.setText(articolo.getCodice());
                address.setText(articolo.getDescrizione());
                break;
            case TYIPE_DIVIDER:
                TextView title = (TextView)convertView.findViewById(R.id.headerTitle);
                String titleString = (String)getItem(position);
                title.setText(titleString);
                break;
        }

        return convertView;
    }
}



Offline capitancooker

  • Utente junior
  • **
  • Post: 56
  • Marco
  • Respect: +3
    • Mostra profilo
  • Dispositivo Android:
    Nexus 5, Asus Zenpad S 8.0
  • Sistema operativo:
    Mac OSX El Capitan
Re:ListView Customizzata
« Risposta #1 il: 12 Novembre 2016, 16:49:52 CET »
0
Brevemente, nell'adapter aggiungi al bottone il listener che esegue l'operazione di cambio visiblity sulla view nascosta.
Ciao,
Marco
Se sbaglio, correggetemi.

Offline nio74

  • Nuovo arrivato
  • *
  • Post: 25
  • Respect: 0
    • Mostra profilo
  • Dispositivo Android:
    Samsung S5
  • Sistema operativo:
    Windows 10
Re:ListView Customizzata
« Risposta #2 il: 12 Novembre 2016, 18:24:05 CET »
0
Grazie della risposta volevo chiedere un'altra cosa.Vorrei fare una ListView Statica devo caricare la descrizione di questo articolo tenendo conto che ogni tanto devo spezzarlo in tre sezioni:
Codice: [Seleziona]
public class Articolo {

    private  String codice,descrizione,modello,quantita,note,prezzoPubblico,prezzoCosto,fornitore,peso,manifattura,ricarico;

    public Articolo(String codice, String descrizione, String modello, String quantita, String note, String prezzoPubblico, String prezzoCosto, String fornitore, String peso, String manifattura, String ricarico) {
        this.codice = codice;
        this.descrizione = descrizione;
        this.modello = modello;
        this.quantita = quantita;
        this.note = note;
        this.prezzoPubblico = prezzoPubblico;
        this.prezzoCosto = prezzoCosto;
        this.fornitore = fornitore;
        this.peso = peso;
        this.manifattura = manifattura;
        this.ricarico = ricarico;
    }

    public String getCodice() {
        return codice;
    }

    public String getDescrizione() {
        return descrizione;
    }

    public String getModello() {
        return modello;
    }

    public String getQuantita() {
        return quantita;
    }

    public String getNote() {
        return note;
    }

    public String getPrezzoPubblico() {
        return prezzoPubblico;
    }

    public String getPrezzoCosto() {
        return prezzoCosto;
    }

    public String getFornitore() {
        return fornitore;
    }

    public String getPeso() {
        return peso;
    }

    public String getManifattura() {
        return manifattura;
    }

    public String getRicarico() {
        return ricarico;
    }
}

Oppure è meglio che imposto una ScrollView a al suo interno lavoro con TextView  ecc ecc?Devo fare una schermata simile a quella nella foto allegata del post precedente
« Ultima modifica: 12 Novembre 2016, 18:35:16 CET da nio74 »

Offline capitancooker

  • Utente junior
  • **
  • Post: 56
  • Marco
  • Respect: +3
    • Mostra profilo
  • Dispositivo Android:
    Nexus 5, Asus Zenpad S 8.0
  • Sistema operativo:
    Mac OSX El Capitan
Re:ListView Customizzata
« Risposta #3 il: 12 Novembre 2016, 18:45:05 CET »
0
Per la mia breve esperienza, con dati omogenei (o quasi) è preferibile usare la ListView et simila, mentre per l'esposizione di dati come nel tuo caso userei un layout ad-hoc, considerata anche la flessibilità che quest'ultimo consente in caso di modifiche non previste da apportare in futuro.
Forse i più esperti ti potranno dare un parere più autorevole del mio.
Ciao,
Marco
Se sbaglio, correggetemi.