关于Activity切换!求教!

luocan1986 2010-11-18 05:09:53
在android中,如果一个界面的顺序如下屏幕A—>屏幕B—>屏幕C—>屏幕D,每个屏幕是一个activity,这样他们都是顺序压栈的, 当我在D的时候想退回到B屏,或者A屏的时候。我应该怎么实现了?
...全文
274 16 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
16 条回复
切换为时间正序
请发表友善的回复…
发表回复
luocan1986 2010-11-20
  • 打赏
  • 举报
回复
我顶 求教啊
yyyay 2010-11-19
  • 打赏
  • 举报
回复
首先,要将想返回的activity的launchMode设置为singleInstance(mainfest.xml里面设置)
然后,在想返回的地方 用intent就可以了
luocan1986 2010-11-19
  • 打赏
  • 举报
回复
[Quote=引用 11 楼 zhq56030207 的回复:]
引用 3 楼 jxnktjlfr1 的回复:

我想到的一种方法是:重写返回键功能,
@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
// 是否触发按键为back键
if (keyCode == KeyEvent.KEYCODE_BACK) {

//在这里检测下当前acitvity是不是D,如果是……
[/Quote]

D到A 和D到B 有什么区别了?
纠结的木棉花 2010-11-19
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 jxnktjlfr1 的回复:]

我想到的一种方法是:重写返回键功能,
@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
// 是否触发按键为back键
if (keyCode == KeyEvent.KEYCODE_BACK) {

//在这里检测下当前acitvity是不是D,如果是的话跳到A
}
}
[/Quote]

D跳到A用intent可以实现,但是问题是D--B怎么实现呢
luocan1986 2010-11-19
  • 打赏
  • 举报
回复
[Quote=引用 9 楼 tiewantn 的回复:]
引用 8 楼 luocan1986 的回复:
引用 6 楼 smallhero007 的回复:
引用 4 楼 luocan1986 的回复:

引用 3 楼 jxnktjlfr1 的回复:
我想到的一种方法是:重写返回键功能,
@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
// 是否触发按键为ba……
[/Quote]

用什么方法了? 这个就是我不太明白的地方
haoyizsw 2010-11-19
  • 打赏
  • 举报
回复
可以设置成singletask的,也可以直接Intent重新start一个
luocan1986 2010-11-19
  • 打赏
  • 举报
回复
[Quote=引用 13 楼 yyyay 的回复:]
首先,要将想返回的activity的launchMode设置为singleInstance(mainfest.xml里面设置)
然后,在想返回的地方 用intent就可以了
[/Quote]

谢谢 我试试
麦田捕手 2010-11-18
  • 打赏
  • 举报
回复
[Quote=引用 8 楼 luocan1986 的回复:]
引用 6 楼 smallhero007 的回复:
引用 4 楼 luocan1986 的回复:

引用 3 楼 jxnktjlfr1 的回复:
我想到的一种方法是:重写返回键功能,
@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
// 是否触发按键为back键
if (keyCode == KeyE……
[/Quote]
在这个方法里if (keyCode == KeyEvent.KEYCODE_BACK)写从D调回到B或A
luocan1986 2010-11-18
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 smallhero007 的回复:]
引用 4 楼 luocan1986 的回复:

引用 3 楼 jxnktjlfr1 的回复:
我想到的一种方法是:重写返回键功能,
@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
// 是否触发按键为back键
if (keyCode == KeyEvent.KEYCODE_BACK) {

//……
[/Quote]

不是很明白。。能给个例子么
SmallHero007 2010-11-18
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 luocan1986 的回复:]

引用 3 楼 jxnktjlfr1 的回复:
我想到的一种方法是:重写返回键功能,
@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
// 是否触发按键为back键
if (keyCode == KeyEvent.KEYCODE_BACK) {

//在这里检测下当前acitvity是不是D,如果是的……
[/Quote]
你将要跳转的Activity设置成SingleTask就行了,比如说,你要从你的Dacitivity跳转到A那么就将A设置成SigleTask.
luocan1986 2010-11-18
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 ameyume 的回复:]
把A,B设置为singleTask模式试试
http://blog.csdn.net/pcwings/archive/2010/09/19/5895197.aspx
[/Quote]

貌似和这个关系不是很大啊。。。。
luocan1986 2010-11-18
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 jxnktjlfr1 的回复:]
我想到的一种方法是:重写返回键功能,
@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
// 是否触发按键为back键
if (keyCode == KeyEvent.KEYCODE_BACK) {

//在这里检测下当前acitvity是不是D,如果是的话跳到A
}
}
[/Quote]

通过什么来跳了? intent? 如果是start方法,他貌似是重启了一个新的activity
foley_liao 2010-11-18
  • 打赏
  • 举报
回复
我想到的一种方法是:重写返回键功能,
@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
// 是否触发按键为back键
if (keyCode == KeyEvent.KEYCODE_BACK) {

//在这里检测下当前acitvity是不是D,如果是的话跳到A
}
}
纠结的木棉花 2010-11-18
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 ameyume 的回复:]

把A,B设置为singleTask模式试试
http://blog.csdn.net/pcwings/archive/2010/09/19/5895197.aspx
[/Quote]
我只是了解顺次跳转.
ameyume 2010-11-18
  • 打赏
  • 举报
回复
把A,B设置为singleTask模式试试
http://blog.csdn.net/pcwings/archive/2010/09/19/5895197.aspx

80,472

社区成员

发帖
与我相关
我的任务
社区描述
移动平台 Android
androidandroid-studioandroidx 技术论坛(原bbs)
社区管理员
  • Android
  • yechaoa
  • 失落夏天
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧