所以我正在研究这个项目,它的规模相当大。我已经安装了一种“幕后”安全登录系统。
实际上,所有活动都扩展了subActivity
类和subActivity
范围Activity
。这使我能够在开始新活动时自动.putExtra()
创建每个表单,并且在每个onCreate()
它将检查传入的数据并确定是否应该强制用户登录(将它们推送到LoginActivity
)。
现在,登录活动在成功登录后会加载到MainActivity
。我希望它动态加载用户最后的活动...
这意味着,存储在其他内容中启动LoginActivity
的活动的类,然后在成功登录时使用LoginActivity
,从附加内容中获取类并使用它来启动Activity
。
我正在寻找最简单的方法,我正在尝试序列化,但是遇到了很多问题,并且认为必须有另一种方法来传递对“目标”类的引用。
希望这是有道理的!
干杯
答案 0 :(得分:1)
您可以使用Java反射API:
按如下方式调用您的登录活动:
Intent intent = new Intent(this, LoginActivity.class);
intent.putExtra("activity", getClass().getName());
startActivity(intent);
然后在登录活动中解析调用活动的名称,并在成功登录后返回到该名称:
private String mActivity;
@Override public void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.login);
// ...
mActivity = "";
Bundle extras = getIntent().getExtras();
if (extras != null)
mActivity = extras.getString("activity");
}
}
@Override public void onClick(View view)
{
try {
Class<?> cls = Class.forName(mActivity);
startActivity(new Intent(this, cls));
}
catch (Exception e) {
e.printStackTrace();
}
}
答案 1 :(得分:0)
在LoginActivity
中,只需调用finish()
,它将返回到堆栈上的下一个Activity
,在您的情况下返回上一个。
答案 2 :(得分:0)
您可以通过startActivityForResult启动登录活动,然后检查主活动中的登录活动结果。看这里http://developer.android.com/reference/android/app/Activity.html#StartingActivities