1

我正在尝试使用 aListView根据我只使用一个选择的文件打开不同的文件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");

4

2 回答 2

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);
于 2012-08-10T08:24:35.967 回答
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());

两种方式都会达到你想要的。

于 2012-08-10T09:17:18.567 回答