ListView citește fișierul, dar WebView nu îl va afișa

Folosesc ListView pentru a afișa toate imaginile din dosar, apoi în onListItemClick încep o altă activitate, îi transmit numele și afișez imaginea în vizualizarea web în următoarea activitate. Chiar dacă imaginea este în director și lista este citită corect, WebView nu o va afișa, nici un gând?

Iată codul meu:

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 afișează fișierele și în care OnClick pornește o altă activitate care afișează fișierul:

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);

}

}

WebView întotdeauna sfârșește cu pagina nu este disponibilă /mnt/sdcard/DivePlanner/file_name.jpeg

încă un lucru: nu înțeleg cu adevărat de ce este dosarul din memoria telefonului, nu ar trebui să fie pe SDcard? (Am exporta unele pngs din aplicația mea în acest dosar, spre surprinderea mea, dosarul nu a fost creat pe cardul SD, ci la telefon)

0

1 răspunsuri

Va trebui să adăugați schema pentru afișarea Webview pentru ao afișa.

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

De ce ai ajuns la concluzia că fișierul este la telefon?

0
adăugat
mulțumesc, a funcționat!
adăugat autor Tomas Petrak, sursa
Android dezvoltatori, România — Moldova
Android dezvoltatori, România — Moldova
27 participanți

Parteneri: ciupacabra.com, @php_ro, @js_ro, @node_ro iOS: @ro_ios Reguli: https://github.com/js-ro/it-telegram/blob/master/RULES.md