java – Android – Tabs,MapView,选项卡内的活动

我们正在编写一个具有4个标签的应用程序:地图,人物,地点,活动.应用程序中的人物,地点和事件在地图上显示为图标.默认情况下,“人物”,“地点”和“事件”选项卡分别显示列表视图,自定义渲染,分别显示所有“人物”,“地点”和“事件”.

alt text http://web6.twitpic.com/img/37202700-f92052dc474b74e1760edda1c47f6940.4adcb134-scaled.png

现在,现在每个选项卡都有一个Intent设置为启动相应的活动.例如,有一个MapTabActivity扩展了MapActivity,一个ShowPeopleListActivity显示了人物,等等.

我看到一个lot of StackOverflow questions /答案说,由于TabHost的设置方式的各种限制,最好不要使用活动作为选项卡的内容.例如,不可能启动一个新的活动,并取代现有活动在一个选项卡,而可以切换一个视图与不同的视图.

现在,我在十字路口.我们(或更好或更坏)投入了大量的时间试图让这个应用程序的工作方式,目前的结构,活动作为选项卡的内容.当单击与人物,地点或事件对应的图标时,它将触发与该对象相对应的URI上的VIEW意图;这是一个Activity,然后显示对象.地图和个人列表中都有相同的机制.我们真的喜欢这个给我们提供的松耦合;我们只是给一个VIEW命令和URI给人/地点/事件,它会自动带给我们正确的活动.可以说,开展的活动涵盖了标签视图,而不是出现在这个视图中,但我们愿意与此共同生活.

这里有一个问题:从展会活动中,我们希望能够回到地图上,以人,地点或事件为中心.我们可以启动一个新的活动来再次显示地图,但现在我们将地图活动作为选项卡的内容,再加上展示活动,加上活动堆栈中的新地图活动;鉴于地图活动的资源密集程度,我猜这不是理想的方式.

我想我的问题是,有没有一个好的教程在哪里显示如何使用TabHost做复杂的任务?我看过HelloTabWidget;我正在寻找比这更复杂的东西.我担心如果我们切换到基于View的做事方式,我们必须做很多内务来截取所有的后台事件,尝试切换视图等,以及以我们不想要的方式强烈地耦合我们的程序.

对前进道路的任何建议将非常感谢.我们是Android的新手,所以我们试图遵循既定的最佳做法,但是当我们看到的几个例子对我们的用例来说太简单时,这很难.

解决方法

I see a lot of StackOverflow
questions/answers saying that due to
various limitations in the way the
TabHost is setup,it’s best NOT to use
activities as the content of tabs.

作为反职业联盟(AATA)的自主任主席,这当然是我的立场.

When an icon corresponding to a
Person,Place,or Event is clicked,it
fires off a VIEW Intent on a URI
corresponding to that object; this is
picked up by an Activity that then
shows the object.

请注意,这与将活动作为选项卡的内容无关.

We can launch a new activity to show
the map again,but now we have the map
activity as the content of the tab,
plus the show activity,plus the new
map activity in the activity stack;
given how resource intensive the map
activity is,I’m guessing this is not
the ideal way to go.

我可以避免它.

I’m worried that if we switch to the
View based way of doing things,we’ll
have to do a LOT of housekeeping to
intercept all the back events,try to
switch out the views,etc.,as
well as strongly coupling our program
in a way we don’t want.

这完全不符合你以前写过的内容.使用“视图”作为选项卡的内容并使用“活动”作为选项卡的内容,您的“后退事件”将不会更改iota.此外,这与您所描述的“松散耦合”模式无关,点击标签中视图中的列表中的图标与点击活动视图中的列表中的图标没有什么不同一个标签

只要让你的Show活动告诉你的主要活动来显示一个特定的位置,那么Show活动可以完成().在没有在活动之间引入硬JVM耦合的情况下,最简单的方法是广播Intent并在主要活动中注册BroadcastReceiver.收到此意图后,主要活动将更新地图并将其设置为当前选项卡.当然,如果您的主要活动使用其选项卡内容的视图,则此方法更为简单.

现在,如果您尝试检查您的应用程序,那么在选项卡中导航不会启动另一个活动,而是将内容保留在自己的选项卡中…这是一个完整的“水壶”.

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


ADB Remote ATV Android TV 的遥控器,基于 ADB Shell 命令 ADB Remote ATV 是一个 Android TV 的遥控器,基于 ADB Shell 命令,泛用性更高。 下面的 shell 命令,是软件的基本原理,通过 shell 命令可模拟物理遥控器的基本按
使用Flutter自带的SearchDelegate组件实现搜索界面,通过魔改实现如下效果:搜素建议、搜索结果,支持刷新和加载更多,解决IOS中文输入拼音问题。
上篇文章讲解了怎么使用Kotlin的协程配合Retrofit发起网络请求,使用也是非常方便,但是在处理请求异常还不是很人性化。这篇文章,我们将处理异常的代码进行封装,以便对异常情况返回给页面,提供更加友好的提示。 编写拓展方法 我们写一个扩展(全局)方法,就叫ViewModelExt.kt,在下面创
安卓开发——WebView+Recyclerview文章详情页,解决高度问题 最近在写一个APP时,需要显示文章详情页,准备使用WebView和RecyclerView实现上面文章,下面评论。出现了WebView高度问题,WebView加载HTML格式数据,而非URL。 这里的WebView为自定义
更新Android SDK到3.0版本时,遇到Failed to rename directory E:\android\tools to E:\android\temp\ToolPackage.old01问题,导致无法更新,出现该问题的原因是由于3.0版本与较早的sdk版本之间文件结构有冲突,解决
Android 如何解决dialog弹出时无法捕捉Activity的back事件 在一些情况下,我们需要捕捉back键事件,然后在捕捉到的事件里写入我们需要进行的处理,通常可以采用下面三种办法捕捉到back事件: 1)重写onKeyDown或者onKeyUp方法 2)重写onBackPressed方
Android实现自定义带文字和图片的Button 在Android开发中经常会需要用到带文字和图片的button,下面来讲解一下常用的实现办法。一.用系统自带的Button实现 最简单的一种办法就是利用系统自带的Button来实现,这种方式代码量最小。在Button的属性中有一个是drawable
Android中的"Unable to start activity ComponentInfo"的错误 最近在做一款音乐播放器的时候,然后在调试的过程中发现一直报这个错误"Unable to start activity ComponentInfo",从字面
Android 关于长按back键退出应用程序的实现最近在做一个Android上的应用,碰到一个问题就是如何实现长按back键退出应用程序。在网上查找了很多资料,发现几乎没有这样的实现,大部分在处理时是双击back键来退出应用程序。参考了一下双击back键退出应用程序的代码,网上主流的一种方法是下面
android自带的时间选择器只能精确到分,但是对于某些应用要求选择的时间精确到秒级,此时只有自定义去实现这样的时间选择器了。下面介绍一个可以精确到秒级的时间选择器。 先上效果图: 下面是工程目录: 这个控件我也是用的别人的,好像是一个老外写的,com.wheel中的WheelView是滑动控件的主
Android平台下利用zxing实现二维码开发 现在走在大街小巷都能看到二维码,而且最近由于项目需要,所以研究了下二维码开发的东西,开源的二维码扫描库主要有zxing和zbar,zbar在iPos平台上应用比较成熟,而在Android平台上主流还是用zxing库,因此这里主要讲述如何利用zxing
Android ListView的item背景色设置以及item点击无响应等相关问题 在Android开发中,listview控件是非常常用的控件,在大多数情况下,大家都会改掉listview的item默认的外观,下面讲解以下在使用listview时最常见的几个问题。1.如何改变item的背景色和按
如何向Android模拟器中导入含有中文名称的文件在进行Android开发的时候,如果需要向Android模拟器中导入文件进行测试,通过DDMS下手动导入或者在命令行下通过adb push命令是无法导入含有中文文件名的文件的。后来发现借用其他工具可以向模拟器中导入中文名称的文件,这个工具就是Ultr
Windows 下搭建Android开发环境一.下载并安装JDK版本要求JDK1.6+,下载JDK成功后进行安装,安装好后进行环境变量的配置【我的电脑】-——>【属性】——>【高级】 ——>【环境变量】——>【系统变量】中点击【新建】:变量名:CLASSPATH变量值:……
如何利用PopupWindow实现弹出菜单并解决焦点获取以及与软键盘冲突问题 在android中有时候可能要实现一个底部弹出菜单,此时可以考虑用PopupWindow来实现。下面就来介绍一下如何使用PopupWindow实现一个弹出窗。 主Activity代码:public void onCreat
解决Android中的ERROR: the user data image is used by another emulator. aborting的方法 今天调试代码的时候,突然出现这个错误,折腾了很久没有解决。最后在google上找到了大家给出的两种解决方案,下面给出这两种方法的链接博客:ht
AdvserView.java package com.earen.viewflipper; import android.content.Context; import android.graphics.Bitmap; import android.graphics.BitmapFactory;
ImageView的scaleType的属性有好几种,分别是matrix(默认)、center、centerCrop、centerInside、fitCenter、fitEnd、fitStart、fitXY。 |值|说明| |:--:|:--| |center|保持原图的大小,显示在ImageVie
文章浏览阅读8.8k次,点赞9次,收藏20次。本文操作环境:win10/Android studio 3.21.环境配置 在SDK Tools里选择 CMAKE/LLDB/NDK点击OK 安装这些插件. 2.创建CMakeLists.txt文件 在Project 目录下,右键app,点击新建File文件,命名为CMakeLists.txt点击OK,创建完毕! 3.配置文件 在CMa..._link c++ project with gradle
文章浏览阅读1.2w次,点赞15次,收藏69次。实现目的:由mainActivity界面跳转到otherActivity界面1.写好两个layout文件,activity_main.xml和otherxml.xmlactivity_main.xml<?xml version="1.0" encoding="utf-8"?><RelativeLayout ="http://schemas..._android studio 界面跳转