Bonjour,
Je fais une petite appli utilisant SQLIte....tout fonctionne bien, mais j'arrive sur un problème pour la gestion des data.
Je m'explique, j'ai un ecran de creation de joueurs(objet),
qui est composé de deux tab...un tab pour chaque équipe.
et un bouton vers un listView listant tous les joueurs.
La création ainsi que la récupération et l'affichage des joueurs fonctionne très bien.
Mon problème est le suivant :
Je crée des joueurs, si je clique sur lister les joueurs, comme dis plus haut ca fonctionne, je reviens en arrière, je CHANGE de TAB, et d'intent par la même occasion, et là si je vais sur lister les joueurs....PAF...plus rien , pas d'erreur , mais liste vide...alors que j'appelle la même activité, et la même requete getAllPlayer()...
Je vous joins le code qui remplis la listView :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56 public class PlayerListActivity extends Activity{ ListView listPlayerListView; StreetDatabase db = new StreetDatabase(this); @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.player_list); db.getWritableDatabase(); List<Player> listPlayers = db.getAllPlayer(); listPlayerListView = (ListView) findViewById(R.id.listViewPlayerList); // Création de la ArrayList qui nous permettra de remplire la listView ArrayList<HashMap<String, String>> listItem = new ArrayList<HashMap<String, String>>(); // On déclare la HashMap qui contiendra les informations pour un item HashMap<String, String> map; for (Player pl : listPlayers) { String log = "Id: " + pl.getId()+ " ,Name: " + pl.getName() + " ,Number: " + pl.getNumber() + " ,Number: " + pl.getTeam(); // Writing Contacts to log Log.d("Name: ", log); // Création d'une HashMap pour insérer les informations du premier // item de notre listView map = new HashMap<String, String>(); map.put("name", pl.getName()); map.put("number", pl.getNumber()); map.put("team", pl.getTeam()); // enfin on ajoute cette hashMap dans la arrayList listItem.add(map); db.close(); } // Récupération de la listview créée dans le fichier main.xml SimpleAdapter mSchedule = new SimpleAdapter(this.getBaseContext(), listItem, R.layout.player_details, new String[] {"name", "number", "team" }, new int[] { R.id.textViewPlayerDetailsName, R.id.textViewPlayerDetailsNumber, R.id.textViewPlayerDetailsTeam }); // On attribut à notre listView l'adapter que l'on vient de créer listPlayerListView.setAdapter(mSchedule); } }
l'activité de création des joueurs :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65 public class TeamCreationActivity extends Activity{ EditText playerName; EditText playerNumber; Button saveButton; Button playerListButton; StreetDatabase db; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.team_creation); Toast.makeText(getBaseContext(), getIntent().getExtras().get("sport").toString() + " " + getIntent().getExtras().get("periodNumber").toString() + " " + getIntent().getExtras().get("periodDuration").toString() + " " + getIntent().getExtras().get("tag").toString(), Toast.LENGTH_SHORT).show(); playerName = (EditText) findViewById(R.id.editTextPlayerName); playerNumber = (EditText) findViewById(R.id.editTextPlayerNumber); saveButton = (Button) findViewById(R.id.buttonPlayerSave); playerListButton = (Button) findViewById(R.id.buttonPlayerList); db = new StreetDatabase(getBaseContext()); db.deleteAllPlayers(db.getWritableDatabase()); saveButton.setOnClickListener(new OnClickListener() { public void onClick(View v) { Player player = new Player(); player.setName(playerName.getText().toString()); player.setNumber(playerNumber.getText().toString()); player.setTeam(getIntent().getExtras().getString("tag").toString()); db.addPlayer(player); playerName.setText(""); playerNumber.setText(""); playerName.requestFocus(); db.close(); } }); playerListButton.setOnClickListener(new OnClickListener() { public void onClick(View v) { Intent intent = new Intent(TeamCreationActivity.this, PlayerListActivity.class); startActivity(intent); } }); } }
J'espère que quelqu'un pourra m'aider.
Merci
Partager