我想为Android开发人员实现一个小开放库。该库包含一个Activity,它使用startActivityForResult()调用和接收参数,并使用onActivityResult()返回结果。我想从意图和开发人员中抽象出来并为它实现一些帮助类。我看到两种方式:
扩展活动并建议开发人员从我在库中定义的类扩展他的活动。这很容易,但不方便,因为开发人员的项目可能需要从另一个库扩展。
将一些Class get Activity作为参数并在回调方法中返回结果:
Class HelperClass {
Activity mActivity;
HelperClass(Activity activity) {
mActivity=activity;
}
void setOption1() {
...
}
void setOption2() {
...
}
void start() {
Intent intent = new Intent(mActivity, MyActivity.class);
mActivity.startActivityForResult(intent, 0);
}
// This method unavailable in this case
// public void onActivityResult(int requestCode, int resultCode, Intent data) {
//
// }
}
可能在这里有另一种实现方式吗?请指教。
答案 0 :(得分:0)
我不明白为什么你需要一个中间层。如果您从活动A开始使用startActivityForResult()
的活动B,则会在活动A中调用onActivityResult()
,而不是B.
如果问题是您想要将参数传递给您的活动,那么请使用intent extras:
Intent intent = new Intent(this, MyActivity.class);
intent.putExtra("option1", value1);
intent.putExtra("option2", value2);
startActivityForResult(intent, 0);
您可以使用onCreate()
的{{1}}方法轻松检索它们:
MyActivity