Bonjour à tou-te-s,
J'ai créé une ListView qui affiche des données à partir d'une bdd SQLite.
Lorsque je clique sur un item,un Toast s'affiche avec les données de l'item.
J'essaie depuis un moment d'ouvrir une autre activité et y afficher les données de l'item mais je n'y arrive pas. La seule chose qui fonctionne est l'ouverture d'une autre activité mais sans donnée. Jje ne sais pas (et je ne comprends pas) comment passer les données d'une activité à l'autre.
Voici mon activité 1 HadActivity.class
Et mon acitivité 2 HadDetails.class
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 getListView().setOnItemClickListener(new OnItemClickListener() { public void onItemClick(AdapterView<?> a, View v, int position, long id) { Had hadFromBdd = hadBdd.getHadFromId(id); if (hadFromBdd != null) { Toast.makeText(HadActivity.this, hadFromBdd.toString(), Toast.LENGTH_LONG).show(); Intent i = new Intent(HadActivity.this, HadDetail.class); Cursor c = (Cursor) adapter.getItem(position); i.putExtra("had_id", c.getInt(c.getColumnIndex("_id"))); startActivity(i); } } });
Je n'ai pas de message d'erreur dans le LogCat. Je pense que je ne suis pas loin du résultat mais je bloque. Voyez-vous mon erreur ? Ma logique n'est pas la bonne ?
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 public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.haddetail); hadId = getIntent().getIntExtra("had_id", 0); // Création d'une instance de ma classe HadBDD final HadBDD db = new HadBDD(this); db.open(); //je doute du cursor. je me dis qu'il devrait récupérer l'id selectionné et non toutes les entrées Cursor cursor = db.getAllHad(); if (cursor.getCount() == 1) { cursor.moveToFirst(); Log.v(TAG, "Activity State: getString ok()"); hadTexte = (TextView) findViewById(R.id.hadTexte); hadTexte.setText(cursor.getString(cursor.getColumnIndex("texte")));
Merci
Partager