Autore Topic: Lista di Oggetti  (Letto 687 volte)

Offline Lukiep

  • Nuovo arrivato
  • *
  • Post: 27
  • Respect: 0
    • Mostra profilo
  • Dispositivo Android:
    Galaxy Nexus
  • Play Store ID:
    Lukiep
  • Sistema operativo:
    Windows 7/8
Lista di Oggetti
« il: 31 Gennaio 2011, 00:56:44 CET »
0
Ciao a tutti, devo creare una lista di giocatori a cui sia possibile incrementare le stat.



Ho creato un elemento della lista in listitem.xml
Codice (XML): [Seleziona]
<?xml version="1.0" encoding="utf-8"?>

<RelativeLayout android:layout_width="fill_parent" xmlns:android="http://schemas.android.com/apk/res/android" android:layout_height="60dip" android:id="@+id/ItemLayout" android:padding="10dip">
        <TextView
                android:gravity="center"
                android:id="@+id/NumPlayer"
                android:layout_alignParentLeft="true"
                android:layout_width="60dip"
                android:layout_height="60dip"
                android:text="- 0 -"
                android:textSize="30dip">
        </TextView>

        <Button
                android:layout_width="wrap_content"
                android:layout_toRightOf="@+id/NumPlayer"
                android:layout_alignTop="@+id/NumPlayer"
                android:layout_alignBottom="@+id/NumPlayer"
                android:id="@+id/Increm"
                android:text="+"
                android:width="80dip"
                android:layout_marginLeft="20dip"
                android:textAppearance="?android:attr/textAppearanceLarge"
                android:gravity="center"></Button>
       
        <TextView
                android:id="@+id/RisPlayer"
                android:layout_toRightOf="@+id/Increm"
                android:layout_alignTop="@+id/Increm"
                android:layout_alignBottom="@+id/Increm"
                android:layout_height="50dip"
                android:layout_width="60dip"
                android:text="0" android:gravity="center" android:textAppearance="?android:attr/textAppearanceLarge"></TextView>
<Button android:textAppearance="?android:attr/textAppearanceLarge" android:id="@+id/Decrem" android:layout_width="wrap_content" android:layout_height="wrap_content" android:gravity="center" android:text="-" android:width="80dip" android:layout_toRightOf="@+id/RisPlayer" android:layout_alignTop="@+id/RisPlayer" android:layout_alignBottom="@+id/RisPlayer"></Button>

</RelativeLayout>

Poi ho creato l'elemento radice in listpiumeno.xml
Codice (XML): [Seleziona]
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
 xmlns:android="http://schemas.android.com/apk/res/android"
 android:layout_width="fill_parent"
 android:layout_height="fill_parent"
 android:orientation="vertical">
        <ListView
                android:id="@+id/Listapiumeno"
                android:layout_height="fill_parent"
                android:layout_width="fill_parent">
        </ListView>
</LinearLayout>

Infine ho creato la classe che dovrebbe lanciare il tutto:
Codice (Java): [Seleziona]
import java.util.ArrayList;
import java.util.HashMap;

import android.app.Activity;
import android.os.Bundle;
import android.widget.ListView;
import android.widget.SimpleAdapter;

public class ListaStat extends Activity {
   
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.listpiumeno);
               
        Eventi evento = new Eventi("Mete");        
     
        //Questa è la lista che rappresenta la sorgente dei dati della listview
        //ogni elemento è una mappa(chiave->valore)
        ArrayList<HashMap<String, Object>> data=new ArrayList<HashMap<String,Object>>();
       
       
        for(int i=0; i<evento.getRegistrazioni().length; i++){
                HashMap<String,Object> regMap=new HashMap<String, Object>();
                String numPlay = ((Integer) i).toString();
                String stat = evento.getRegistrazioni(i).toString();
               
                regMap.put("numero", numPlay); //numero giocatore
                regMap.put("risultato", stat);
                data.add(regMap);
        }
       
        String[] from={"numero","risultato"};        
       
        int[] to = {R.id.NumPlayer, R.id.RisPlayer};
       
        SimpleAdapter adapter = new SimpleAdapter(
                                        getApplicationContext(),
                                        data,
                                        R.layout.listitem,
                                        from,
                                        to);
       
        //utilizzo dell'adapter
        ((ListView)findViewById(R.id.Listapiumeno)).setAdapter(adapter);
    }
}

Che lavora sull'oggetto Eventi
Codice (Java): [Seleziona]
package it.device;

public class Eventi {
        String tipologia;
        int[] registrazioni = new int[16];
       
        public Eventi(String tipo) {
                super();
                tipologia = tipo;
               
                for(int i=0; i<16; i++){
                        registrazioni[i]= 0;
                }
        }

        public int[] getRegistrazioni() {
                return registrazioni;
        }
       
        public Integer getRegistrazioni(int player) {
                return (Integer) registrazioni[player];
        }

        public void incrRegistrazione(int player) {
                registrazioni[player]++;
        }
       
        public void decrRegistrazione(int player) {
                registrazioni[player]--;
        }              
}

Ma l'applicazione va in crash.

Ho seguito questa guida: [medio] ListView con layout personalizzato tramite un custom ArrayAdapter - Android Developers Italia

Grazie per l'aiuto.

Offline bradipao

  • Moderatore globale
  • Utente storico
  • *****
  • Post: 4043
  • keep it simple
  • Respect: +567
    • Github
    • Google+
    • bradipao
    • Mostra profilo
  • Dispositivo Android:
    Nexus 5
  • Play Store ID:
    Bradipao
  • Sistema operativo:
    W7
Re:Lista di Oggetti
« Risposta #1 il: 31 Gennaio 2011, 08:03:58 CET »
0
Se va in crash c'è qualcosa di utile nel LOGCAT, puoi postarlo?
NON rispondo a domande nei messaggi privati
Bradipao @ Play Store

Offline 7h38ugg3r

  • Moderatore globale
  • Utente storico
  • *****
  • Post: 1200
  • Respect: +133
    • riccardofischetti
    • th38ugg3r
    • @7h38ugg3r
    • Mostra profilo
  • Dispositivo Android:
    Galaxy-S GT I-9000/ ASUS Eee Pad Transformer
  • Play Store ID:
    Riccardo Fischetti
  • Sistema operativo:
    OS X Lion / Linux Mint 11 (Katya)
Re:Lista di Oggetti
« Risposta #2 il: 31 Gennaio 2011, 10:01:41 CET »
0
@bradipao: ti darei un +1 solo per la firma....^_^
7h38ugg3r<=>thebugger
Non conosci Java? Allora sei nel posto sbagliato!

http://www.androidpatterns.com/