我的应用程序有以下流程屏幕:
Home->screen 1->screen 2->screen 3->screen 4->screen 5
现在我log out 在每个屏幕上都有一个公共按钮
(Home/ screen 1 / screen 2 /screen 3/ screen 4 / screen 5)
我希望当用户点击退出按钮(从任何屏幕)时,所有屏幕都将完成,并且Log in将打开一个新屏幕.
我几乎尝试过所有FLAG_ACTIVITY这一切.我还在stackoverflow中查看了一些答案,但无法解决问题.我的应用程序是在Android 1.6上,因此无法使用FLAG_ACTIVITY_CLEAR_TASK
有什么方法可以解决这个问题吗?
我ListView在我的Android应用程序中实现了一个.我ListView使用类的自定义子类绑定到此ArrayAdapter.在重写ArrayAdapter.getView(...)方法中,我指定了一个OnClickListener.在onClick方法中OnClickListener,我想发布一个新活动.我得到了例外:
Calling startActivity() from outside of an Activity context requires the
FLAG_ACTIVITY_NEW_TASK flag. Is this really what you want?
Run Code Online (Sandbox Code Playgroud)
我怎样才能获得Context的ListView(当前Activity)下工作?
是否可以在堆栈上启动活动,清除之前的整个历史记录?
情况
我有一个活动堆栈,可以是A-> B-> C或B-> C(屏幕A选择用户令牌,但许多用户只有一个令牌).
在屏幕C中,用户可以采取使屏幕B无效的动作,因此应用程序想要将它们带到屏幕A,而不管它是否已经在堆栈中.屏幕A应该是我的应用程序中堆栈上唯一的项目.
笔记
还有许多其他类似的问题,但我没有发现任何可以回答这个问题的问题.我试过调用getParent().finish()- 这总是导致空指针异常.FLAG_ACTIVITY_CLEAR_TOP仅在活动已在堆栈上时才有效.
在Android中我有一些活动,比方说A,B,C.
在A中,我使用此代码打开B:
Intent intent = new Intent(this, B.class);
startActivity(intent);
Run Code Online (Sandbox Code Playgroud)
在B中,我使用此代码打开C:
Intent intent = new Intent(this, C.class);
startActivity(intent);
Run Code Online (Sandbox Code Playgroud)
当用户点击C中的按钮时,我想返回A并清除后栈(关闭B和C).因此,当用户使用后退按钮B和C将不会显示时,我一直在尝试以下内容:
Intent intent = new Intent(this, A.class);
intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
startActivity(intent);
Run Code Online (Sandbox Code Playgroud)
但是当我回到活动A时,如果我使用后退按钮,B和C仍然会出现.我怎么能避免这种情况?
我是Android开发的新手.
我想创建并开始一项活动来显示有关游戏的信息.我展示了我需要一个gameId的信息.
如何将此游戏ID传递给活动?游戏ID是绝对必要的,所以我不想创建或启动活动,如果它没有ID.
这就像活动只有一个带有一个参数的构造函数.
我怎样才能做到这一点?
谢谢.
我想在应用程序中检索用户输入以供以后使用.
例如,系统会提示用户输入一周中的所有7天,并在editText框中键入"星期一","星期二"等.然后在应用程序中稍后会出现一个问题,询问您最喜欢的一天是什么时候?微调器将显示他们输入的日期的下拉列表供用户选择.
我想共享偏好对此有用,但我找不到一个很好的例子来给我一个起点.任何帮助,将不胜感激.
我的例子中有3个类:A类,主要活动.A类调用startActivityForResult:
Intent intent = new Intent(this, ClassB.class);
startActivityForResult(intent, "STRING");
Run Code Online (Sandbox Code Playgroud)
B类,这个类是一个TabActivity:
Intent intent = new Intent(this, ClassC.class);
tabHost.addTab...
Run Code Online (Sandbox Code Playgroud)
C类,这个类是一个常规的Activity:
Intent intent = this.getIntent();
intent.putExtra("SOMETHING", "EXTRAS");
this.setResult(RESULT_OK, intent);
finish();
Run Code Online (Sandbox Code Playgroud)
onActivityResult在类A中调用,但resultCode RESULT_CANCELED代替,RESULT_OK返回的intent为null.如何从TabHost中的Activity返回一些内容?
我意识到问题是我的C类实际上是在B类中运行,而B类是返回RESULT_CANCELED到A类的.我只是不知道一个解决方法.
我一直试图表现出"你想退出吗?" 用户尝试退出活动时的对话框类型.
但是我找不到合适的API挂钩. Activity.onUserLeaveHint()最初看起来很有希望,但我找不到阻止活动完成的方法.
我有兴趣听取您的意见,这是实施社交活动流的最佳方式(Facebook是最着名的例子).涉及的问题/挑战是:
..还有更多,特别是如果你把它带到高水平的复杂程度,例如,Facebook将几个活动项目合并为一个("用户x,y和z评论该照片")
关于实现这样的系统,数据模型等的最灵活,有效和最强大的方法的任何关于模式,论文等的想法或指示将是值得赞赏的.
虽然大多数问题都与平台无关,但我最终可能会在Ruby on Rails上实现这样的系统
android-activity ×10
android ×9
back-stack ×1
clear ×1
flow ×1
java ×1
oncreate ×1
screen ×1
stack ×1