【问题标题】:Android/Intent equivalent of HTTP #anchor相当于 HTTP #anchor 的 Android/Intent
【发布时间】:2013-11-22 01:42:33
【问题描述】:

我意识到标题令人困惑,但我不确定如何总结我的问题。

所以在 HTML 中,你可以有一个网页

reallyLongWebpage.html

当您在浏览器中打开它时,它会在文档顶部打开它。但是,如果您导航到

reallyLongWebpage.html#section46

然后它将打开网页,但向下滚动到页面上 <a name="section46"></a> 的任何位置。

我正在尝试用我的 android 应用做类似的事情。

我有一个包含大量内容的活动(数量不多,但每次向下滚动以找到您想要的内容仍然有点太多)。我知道如何使用意图和发送参数,但在活动本身上,我如何获取值(例如“滚动到锚点 7”)并滚动到适当的位置?

【问题讨论】:

  • 您的活动是否包含列表视图?是您要滚动的 ListView 吗?
  • 它不包含列表视图。它主要是带有一些图像的文本视图。所有标题(我想成为锚)都是单独的 TextViews。
  • 该死。我正在为列表视图撰写答案:-(
  • 这是你要找的东西吗:stackoverflow.com/questions/6831671/…

标签: android android-intent


【解决方案1】:

答案实际上取决于您滚动的确切内容,但如果您使用的是ScrollView,那么您可以使用.scrollTo(int, int) (see here)。

要从Intent 中检索滚动坐标或搜索文本,应在发送前将其放在数据Bundle 中。

如果您没有使用预定坐标并搜索某些特定文本,您只需检查每个TextView 的内容并进行比较。使用setTaggetTag 指定哪些TextView 被视为可搜索的标头可能会有所帮助。

【讨论】:

    【解决方案2】:

    如果是你想滚动的Activity中的ListView,那么

    a) 在启动 Activity 的 Intent 中,将数据集项的索引作为附加项发送

    int indexToSelect = 17;
    intent.putExtra("IndexToSelect", indexToSelect);
    

    b) 在 Activity 本身中,从 Intent 中获取索引

    int indexToSelect = intent.getIntExtra("IndexToSelect");
    

    c) 最后,将 ListView 滚动到该位置:

    listView.setSelectionFromTop(indexToSelect, 0);
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-09-27
      • 2021-11-07
      • 2011-10-16
      • 2013-09-05
      相关资源
      最近更新 更多