Besoin d'explication pour SQLite
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:
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:
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