gogui63 Posted May 26, 2012 Share Posted May 26, 2012 (edited) Bonjour, voila mon problème j'ai une ListView et dans cette même ListView j'aimerai lancer DIFFERENTES activity je m'explique ( voir le code ci dessous en même temps ) : Les deux premiers Items doivent lancer un PDF mais le troisième "Sur Facebook" doit lancer une nouvelle activity , plus précisément une nouvelle vue (facebook.java), j'arrive à le faire avec un bouton mais je n'arrive pas depuis ma ListView, voila mon bout de code : package com.androiddev.tab; import java.io.FileNotFoundException; import java.io.FileOutputStream; import java.io.IOException; import java.io.InputStream; import java.util.ArrayList; import java.util.HashMap; import android.app.Activity; import android.app.ListActivity; import android.net.Uri; import android.os.Bundle; import android.widget.ListView; import android.widget.SimpleAdapter; import android.app.Activity; import android.os.Bundle; import android.app.Activity; import java.util.ArrayList; import java.util.HashMap; import com.androiddev.tab.R; import android.app.Activity; import android.content.ActivityNotFoundException; import android.content.Intent; import android.os.Bundle; import android.util.Log; import android.view.View; import android.view.Window; import android.view.View.OnClickListener; import android.widget.AdapterView; import android.widget.Button; import android.widget.ListView; import android.widget.SimpleAdapter; import android.widget.AdapterView.OnItemClickListener; public class Tab5 extends ListActivity implements OnClickListener { private ListView maListViewPerso25; /** Called when the activity is first created. */ @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); requestWindowFeature(Window.FEATURE_NO_TITLE); setContentView(R.layout.onglet5); Button button = (Button) findViewById(R.id.imageButtonSelector2); button.setOnClickListener(this); maListViewPerso25 = (ListView) findViewById(R.id.listView25); ArrayList<HashMap<String, String>> listItem25 = new ArrayList<HashMap<String, String>>(); HashMap<String, String> map; map = new HashMap<String, String>(); map.put("titre", "1 - Qui sommes-nous ?"); map.put("img", String.valueOf(R.drawable.fleche)); map.put("file", "QSN.pdf"); listItem25.add(map); map = new HashMap<String, String>(); map.put("titre", "2 - A propos de l'application"); map.put("img", String.valueOf(R.drawable.fleche)); map.put("file", "Apropos.pdf"); listItem25.add(map); map = new HashMap<String, String>(); map.put("titre", "3 - Sur Facebook"); map.put("img", String.valueOf(R.drawable.fleche)); listItem25.add(map); SimpleAdapter mSchedule = new SimpleAdapter (this.getBaseContext(), listItem25, R.layout.afichageitem, new String[] {"img", "titre" }, new int[] {R.id.fleche, R.id.titre}); maListViewPerso25.setAdapter(mSchedule); //LISTENER maListViewPerso25.setOnItemClickListener(new OnItemClickListener() { public void onItemClick(AdapterView<?> a, View v, int position, long id) { HashMap<String, String> map = (HashMap<String, String>) maListViewPerso25.getItemAtPosition(position); String nomFichierDansAsset = map.get("file"); String nomFichierTemp = "list25.pdf"; if (copyAssetToTempFile(nomFichierDansAsset, nomFichierTemp)) { try { String name = getFileStreamPath(nomFichierTemp).getAbsolutePath(); Uri uri = Uri.parse("file://" + name); Intent intent = new Intent(Intent.ACTION_VIEW); intent.setDataAndType(uri, "application/pdf"); startActivity(intent); } catch (ActivityNotFoundException e) { // Cas d'erreur si pas de lecteur PDF installé Log.d("xx", "Erreur affichage PDF", e); } } } }); }; private boolean copyAssetToTempFile(String nomFichierAsset, String nomFichierTemp) { boolean result = true; try { byte[] buffer = new byte[512]; FileOutputStream fos = openFileOutput(nomFichierTemp, MODE_WORLD_READABLE); InputStream is = getAssets().open(nomFichierAsset); int bytesRead = is.read(buffer); while (bytesRead > 0) { fos.write(buffer, 0, bytesRead); bytesRead = is.read(buffer); } fos.close(); is.close(); } catch (FileNotFoundException e) { // Cas d'erreur de création de fichier Log.d("xx", "Erreur creation fichier ", e); result = false; } catch (IOException e) { // Cas d'erreur de lecture de fichier Log.d("xx", "Erreur lecture fichier", e); result = false; } return result; } // POUR LE BOUTON public void onClick(View src) { Intent i = new Intent(this, TabAndroidActivity.class); startActivity(i); }; } j'ai essayé ça : maListViewPerso25.setOnItemClickListener(new OnItemClickListener() { public void onItemClick(AdapterView<?> a, View v, int position, long id) { HashMap<String, String> map = (HashMap<String, String>) maListViewPerso25.getItemAtPosition(position); if(map.get("titre").equals("3 - CBP sur Facebook")) { startActivity(new Intent(Tab5.this, TabAndroidActivity.class)); return; } //SUITE .... Voila résolu tout seul en cherchant ;) Edited May 28, 2012 by gogui63 Quote Link to comment Share on other sites More sharing options...
lolobosse Posted July 19, 2013 Share Posted July 19, 2013 Je ne vais pas apporter de réponse à votre question étant donné que vous l'avez déjà trouvé, simplement vous remercier de m'avoir dépanner puisque j'avais oublié la ligne : HashMap map = (HashMap) maListViewPerso.getItemAtPosition(position); Merci encore, mes cheveux vous en remercient également, vous leur avez sauvé la vie (ils sont passés à deux doigts de l'arrachage sauvage). Quote Link to comment Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.