我正在编写我的第一个Android应用程序,并且我一直在努力解决这个问题超过一周。它似乎是所有Android应用程序的基础,但我无法理解如何做到这一点。例如,如果您在Android设置菜单中,您有一个列表并单击“关于”,它会将您带到“关于”Actvitiy等。
我也需要我的应用程序,我有5个菜单项,我希望能够选择并转到所选项目的活动。
目前我的项目在string_array中,但我没有任何东西可以将字符串名称与我想要转到的活动名称相对应。
有人可以给我一些提示吗?我真的在这里苦苦挣扎,有点不知所措。提前谢谢!
答案 0 :(得分:2)
您应该从阅读Developer's Guide
开始您应注意的特定部分是Application Fundamentals和Intents
激活组件:意图
内容提供商在以下时间被激活 他们的目标是来自一个人的请求 ContentResolver的。其他三个 组件 - 活动,服务和 广播接收器 - 由激活 异步消息称为意图。 intent是一个Intent对象 保存邮件的内容。对于 活动和服务,它的名字 请求和指定的行动 其中,要处理的数据的URI 其他事情。例如,它可能 传达活动请求 向用户呈现图像或让图像 用户编辑一些文本。用于广播 接收器,Intent对象命名 行动正在宣布。例如, 它可能会宣布有兴趣 相机按钮所具有的各方 被压了。
有单独的方法 激活每种类型的组件:
通过传递活动来启动(或给予新的事情) 意图对象 Context.startActivity()或 Activity.startActivityForResult()。该 响应活动可以看看 导致它的初始意图 通过调用getIntent()启动 方法。 Android调用活动的 onNewIntent()方法将其传递给任何人 后来的意图。
一项活动经常开始下一项活动。如果它期望结果回来 它开始的活动,它打电话 startActivityForResult()而不是 startActivity()。例如,如果它 启动一个允许用户的活动 选择一张照片,它可能会是 退回了所选照片。结果 在Intent对象中返回 传递到调用活动的 onActivityResult()方法。
启动服务(或者正在进行新的指示 service)通过传递一个Intent对象 到Context.startService()。 Android的 调用服务的onStart()方法 并传递Intent对象。
同样,可以将intent传递给Context.bindService()来建立 这是一个持续的联系 调用组件和目标 服务。该服务收到 onBind()调用中的Intent对象。 (如果 该服务尚未运行, bindService()可以选择启动 它。)例如,活动可能 建立与音乐的联系 前面提到的播放服务 它可以为用户提供 表示(用户界面) 控制播放。活动 会调用bindService()来设置 那个连接,然后调用方法 由服务定义来影响 回放。
后面的部分,远程过程调用,有关于绑定的更多详细信息 服务。
应用程序可以通过传递Intent对象来启动广播 像这样的方法 Context.sendBroadcast() Context.sendOrderedBroadcast()和 Context.sendStickyBroadcast()中的任何一个 他们的变化。 Android提供 所有感兴趣的广播的意图 接收者通过调用他们的onReceive() 方法
有关意向消息的更多信息,请参阅 单独的文章,意图和意图 过滤器。
答案 1 :(得分:1)
在Settings应用中查看其完成方式。他们使用PreferenceActivity
并将Intent
嵌入XML文件中。
<com.android.settings.IconPreferenceScreen
android:title="@string/radio_controls_title"
settings:icon="@drawable/ic_settings_wireless">
<intent
android:action="android.intent.action.MAIN"
android:targetPackage="com.android.settings"
android:targetClass="com.android.settings.WirelessSettings" />
</com.android.settings.IconPreferenceScreen>