ListView读取文件,但WebView不会显示它

时间:2012-05-24 15:58:13

标签: android listview webview

我正在使用ListView列出文件夹中的所有图片,然后在onListItemClick中我启动另一个活动,将名称传递给它并在下一个活动的webview中显示图片。即使图片在文件夹中并且ListView正确读取它,WebView也不会显示它,有什么想法?

这是我的代码:

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<String> adapter = new ArrayAdapter<String>(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);


}

}

显示文件并在OnClick中启动另一个显示文件的活动:

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总是以页面不可用为止/mnt/sdcard/DivePlanner/file_name.jpeg

还有一件事:我真的不明白为什么手机内存中的文件夹,不应该在SD卡上? (我将一些png从我的应用程序导出到这个文件夹,令我惊讶的是,文件夹不是在SD卡上创建的,而是在手机上创建的)

1 个答案:

答案 0 :(得分:0)

您需要附加Webview的方案才能显示它。

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

是什么让你得出结论文件在手机上?