我正在制作一个带有登录屏幕的应用程序,然后进入玩游戏的表面视图。问题是用户可以在播放时注销,我需要能够将用户返回到登录屏幕。我该怎么做?
我尝试将其添加到surfaceview,但它没有做任何事情:
((Activity)getContext()).setContentView(R.layout.login);
编辑:
问题已解决,这是我在surfaceview中添加的代码:
Intent intent = new Intent();
intent.setClass(getContext(), BattleLogin.class);
((Activity)getContext()).startActivityForResult(intent,loginResult);
值得注意的是,不要忘记将新活动添加到清单中。
答案 0 :(得分:1)
为什么不尝试创建一个Intent来启动一个新的Activity来处理用户登录?当用户与新屏幕交互时,它会使前一个专用于SurfaceView的Activity暂停在堆栈中。
您可以在SurfaceView活动中的任何位置使用详细here的startActivityForResult()
来获取状态信息,例如成功登录或登录活动完成时的内容。
答案 1 :(得分:0)
不会带有
的警告对话框Login Name:
Password:
的工作。用户应该能够输入凭据并继续。
也许保存凭据应该允许用户自动登录
using a progress dialog
游戏暂停时。
<强>更新强>
与对话框关联的错误可能是由于UI线程问题。
但她是一个快速黑客
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/wrapper"
android:layout_width="fill_parent"
android:layout_height="fill_parent">
<SurfaceView
android:id="@+id/surface"
android:layout_width="wrap_content"
android:layout_height="wrap_content"/>
<RelativeLayout android:id="@+id/my_dialog"
android:layout_height="wrap_content"
android:layout_width="wrap_content"
android:layout_centerInParent="true"
android:visibility="**visible|gone**"
>
<your loging layout comes here />
</RelativeLayout>
</RelativeLayout>
这将漂浮在表面之上。但你需要冻结表面(暂停你的游戏),这个布局也不应该完全隐藏表面。