ListView lit le fichier, mais WebView ne l'affiche pas

J'utilise ListView pour lister toutes les images dans le dossier, puis dans onListItemClick, je commence une autre activité, lui passe le nom et affiche l'image dans le webview dans l'activité suivante. Même si l'image est dans le dossier et que le ListView le lit correctement, le WebView ne l'affichera pas, aucune idée?

Voici mon code:

public class Dives extends ListActivity {

private File currentDir;

public void onCreate(Bundle icicle) {
    super.onCreate(icicle);
    this.requestWindowFeature(Window.FEATURE_NO_TITLE);
     currentDir = new File(Environment.getExternalStorageDirectory().getAbsolutePath() + File.separator + "DivePlanner" + File.separator);

     FilenameFilter filter = new FilenameFilter() {
            public boolean accept(File dir, String name) {
                return (name.endsWith("png") || name.endsWith("jpg") || name.endsWith("jpeg") || name.endsWith("PNG") || name.endsWith("JPG") || name.endsWith("JPEG"));
            }
        };

    String[] values = currentDir.list(filter);
     if (values == null) 
        {
         Toast.makeText(getApplicationContext(), "Error", 500).show();
        } 

     ArrayAdapter adapter = new ArrayAdapter(this, android.R.layout.simple_list_item_1, values);
     setListAdapter(adapter);
     getListView().setBackgroundDrawable(getResources().getDrawable(R.drawable.diver));
}

@Override

protected void onListItemClick(ListView list, View v, int position, long id) {
    list.setBackgroundDrawable(getResources().getDrawable(R.drawable.diver));
    String item = (String) getListAdapter().getItem(position);

    Intent myIntent = new Intent(this, DisplayDive.class);

    Bundle B = new Bundle();
    B.putString("jmeno", item);
    myIntent.putExtras(B);

    this.startActivity(myIntent);


}

}

Ce qui affiche les fichiers et dans OnClick démarre une autre activité qui affiche le fichier:

public class DisplayDive extends Activity {
/** Called when the activity is first created. */
WebView myWebView;
String jmeno;

public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    this.requestWindowFeature(Window.FEATURE_NO_TITLE);
    setContentView(R.layout.table);
    Bundle extras = this.getIntent().getExtras();
    if(extras!=null) jmeno = extras.getString("jmeno");

    myWebView = (WebView)findViewById(R.id.myWebView);
    myWebView.setInitialScale(100);
    myWebView.getSettings().setBuiltInZoomControls(true);
    myWebView.loadUrl(Environment.getExternalStorageDirectory().getAbsolutePath()+ File.separator + "DivePlanner" + File.separator + jmeno);

}

}

Le WebView finit toujours avec la page non disponible /mnt/sdcard/DivePlanner/file_name.jpeg

encore une chose: je ne comprends pas vraiment pourquoi est le dossier dans la mémoire du téléphone, ne devrait-il pas être sur la carte SD? (J'exporte des png de mon application vers ce dossier, à ma grande surprise, le dossier n'a pas été créé sur la carte SD mais sur le téléphone à la place)

0

1 Réponses

Vous devrez ajouter le schéma pour le Webview pour l'afficher.

file:///mnt/sdcard/Dive.....

Qu'est-ce qui vous a fait conclure que le fichier est au téléphone?

0
ajouté
merci, ça a marché!
ajouté l'auteur Tomas Petrak, source