Chr*_*pix 81 android exit android-intent android-activity
我对启动新活动有疑问.归结为此.我在视图上有3个选项卡
A) contains gMap activity
B) camera activity
C) some random text fields.
Run Code Online (Sandbox Code Playgroud)
要求是应用程序以纵向模式运行.
除了Camera Preview Surface(B)之外,所有3个选项卡都按预期工作.它旋转了90度.他们唯一的方法就是将应用程序设置为横向,这会抛出我所有的标签,并且几乎不可行.
我的解决方案是:替换
我的相机活动有一个空的常规活动,除了
Intent i = new Intent(this,CameraActivity.class);
startActivity(i);
Run Code Online (Sandbox Code Playgroud)
这将启动我的CameraActivity.这很好.我必须做一个线性布局并包含3个看起来像真正的标签的图像,所以我可以尝试模仿标签的操作,同时将屏幕旋转到横向并将视觉效果保持为纵向.用户可以单击其中一个图像(按钮)以显示下一个选项卡.这是我的问题.它应退出我的"相机活动",返回选项卡中的"空白活动",应该将其解释为从我的图像中单击已删除的选项卡.
最重要的是,当它返回时,它返回到选项卡下的空白(黑色)页面(因为它是'空').如何将返回事件捕获回调用该活动的页面,然后查看它们执行了哪些操作?
我可以设置一个onclicklistener,我可以响应被点击的假标签(图像)退出相机活动.退出时,选项卡应更新,以便您返回.有什么建议?
谢谢,
Ret*_*ier 158
我将专注于回答如何解决您的workround,以便它按照您的意愿行事.
捕获在另一个Activity中执行的操作需要三个步骤.
使用startActivityForResult而不是启动辅助活动(您的"相机活动")作为子活动startActivity.
Intent i = new Intent(this,CameraActivity.class);
startActivityForResult(i, STATIC_INTEGER_VALUE);
Run Code Online (Sandbox Code Playgroud)
在子活动(相机活动)内,而不是在用户单击不同的选项卡图像时关闭活动,您需要创建一个新的Intent并包含当您使用extras包返回到父应用程序时显示的选项卡的索引.setResult在调用finish关闭相机Activity 之前将其传递回父调用.
resultIntent = new Intent(null);
resultIntent.putExtra(PUBLIC_STATIC_STRING_IDENTIFIER, tabIndexValue);
setResult(Activity.RESULT_OK, resultIntent);
finish();
Run Code Online (Sandbox Code Playgroud)
最后一步是在调用Activity,覆盖onActivityResult以监听来自摄像机Activity的回调.从返回的Intent中获取额外信息,以确定应显示的选项卡的索引.
@Override
public void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
switch(requestCode) {
case (STATIC_INTEGER_VALUE) : {
if (resultCode == Activity.RESULT_OK) {
int tabIndex = data.getIntExtra(PUBLIC_STATIC_STRING_IDENTIFIER);
// TODO Switch tabs using the index.
}
break;
}
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
69584 次 |
| 最近记录: |