基于我选择的ListView加载不同的文件,仅使用一个WebView

时间:2012-08-10 08:18:31

标签: android

我正在尝试使用ListView根据我仅使用WebView选择的内容打开不同的文件。

我设置了意图:

protected void onListItemClick(ListView l, View v, int position, long id) {
  switch (position) {
  case '0' :
    Intent i = new Intent(getApplicationContext(), tabViewerClass.class);
    startActivity(i);
  }
}

tabViewerClass我有这个:

WebView tabViewing = (WebView) findViewById(R.id.webView1);
tabViewing.loadUrl("file:///android_asset/twentyseven.html");

第二行tabViewing.loadUrl("file:///android_asset/twentyseven.html");我想在选择case 0时调用,但如果我选择其他选项,我希望它在WebView中调用另一个文件。

这样的事情:

case '0' :
    Intent i = new Intent(getApplicationContext(), tabViewerClass.class);
    startActivity(i);
    load whatever file
case '1' :
    Intent i = new Intent(getApplicationContext(), tabViewerClass.class);
    startActivity(i);
    load a different file in the webview
case '2' :
    Intent i = new Intent(getApplicationContext(), tabViewerClass.class);
    startActivity(i);
    load a different file in webview

load whatever file相当于tabViewing.loadUrl("file:///android_asset/twentyseven.html");

2 个答案:

答案 0 :(得分:1)

您可以在意图中传递文件名:

Intent i = new Intent(getApplicationContext(), tabViewerClass.class);
i.putExtra("filename", "file:///android_asset/twentyseven.html");
startActivity(i);

并在tabViewerClass中:

String filename = getIntent().getStringExtra("filename");
WebView tabViewing = (WebView)findViewById(R.id.webView1);
tabViewing.loadUrl(filename);

答案 1 :(得分:1)

传递要加载的文件的另一种方法是使用Uri。

Intent i = new Intent(getApplicationContext(), tabViewerClass.class);
i.setData(Uri.parse("file:///android_asset/twentyseven.html"));
startActivity(i);

然后在webview中,您可以通过检索uri

来加载页面
WebView tabViewing = (WebView) findViewById(R.id.webView1);
tabViewing.loadUrl(getIntent().getDataString());

两种方式都可以达到你想要的效果。