【问题标题】:How do I load local HTML files using a ListView in Android?如何在 Android 中使用 ListView 加载本地 HTML 文件?
【发布时间】:2013-06-14 12:57:37
【问题描述】:

我一直在研究 Android 中的 ListView,其中包含许多项目。我希望每个列表项都有一个相应的 HTML 文件,该文件在单击列表项时加载到 WebView 中。每个列表项都有一个相应的 HTML 文件。 HTML 存储在设备上。

为了了解我正在使用的 ListView,我在http://javatechig.com/android/android-listview-tutorial/ 修改了教程。

我认为我的问题是我已经习惯了 iOS 开发,而且我很难在不考虑如何在 iOS 中解决它的情况下解决这个问题!

任何意见表示赞赏,

谢谢。

【问题讨论】:

  • 这些是设备上或服务器上的 HTML 文件?
  • 它们是设备上的本地文件。

标签: java android android-listview android-webview


【解决方案1】:

在 iOS 中执行此操作的一种方法是将情节提要模板与列表和详细视图一起使用。

您可以在 Android 中使用两个不同的活动来做同样的事情。您已经在列表中进行了一项活动。您应该添加第二个活动,仅使用 WebView(+ 围绕它的任何导航)。

要将其连接起来,您需要将OnItemClickListener 添加到列表视图中,该列表视图会通过适当的活动操作触发意图。

// logic to get the html file goes here
Intent i = new Intent(context, MyWebViewActivity.class);
i.putExtra("fileToShow", theFile);
context.startActivity(i);

在您的MyWebViewActivity 中,您可以这样做:

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.layout_with_webview);
    final Intent intent = getIntent();
    if (null != intent) {
        if (intent.hasExtra("fileToShow")) {
            WebView myWebView = (WebView) findViewById(R.id.my_web_view);
            myWebView.loadUrl("file:///" + intent.getExtras().getString("fileToShow");
        }
    }
}

您可能需要围绕此添加更多代码和布局以满足您的特定需求 - 但这种通用方法应该可以正常工作。

【讨论】:

  • 谢谢你,给了我足够的信息来指引我正确的方向。
【解决方案2】:

您可以将 setOnItemClickListener 用于 listview 并将 html 传递给 loadUrl,例如...

listview.setOnItemClickListener(new AdapterView.OnItemClickListener() {

  @Override
  public void onItemClick(AdapterView<?> element, View arg1, int pos, long arg3){
  // TODO Auto-generated method stub
  webView.getSettings().setJavaScriptEnabled(true);
  webView.loadUrl(htmladdress);
  }
});

【讨论】:

    【解决方案3】:

    为详细视图创建一个新活动,包含 web 视图

    然后,在您的列表视图(主视图)onItemClickListener 回调中获取文件的 uri,将其捆绑为额外的意图并启动新活动

    Activity 接收 Intent,从 Extras 中提取 uri,并让 webview 加载它

    本地的uri是这样的 "file:///" + context.getExternalFilesDir(null) + "/..."

    所以您可能想建立一个数据库来存储 uri,并在列表视图中使用游标适配器

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-01-19
      • 2014-02-28
      • 1970-01-01
      • 2019-04-08
      • 1970-01-01
      • 1970-01-01
      • 2013-01-18
      • 2012-06-21
      相关资源
      最近更新 更多