我正在尝试为 Android运行时权限创建帮助程序类代码段,在此示例中,我有两个类.c
和static
。 MyActivity
扩展BoilerPlate
和MyActivity
实现FragmentActivity
接口,该接口具有回调方法FragmentActivity
。我的OnRequestPermissionsResultCallback
类的实例为onRequestPermissionsResult(param1, param2, param3)
。
分类MyActivity
BoilerPlate
Class FragmentActivity
MyActivity
班级BoilerPlate
public class MyActivity extends FragmentActivity {
private BoilerPlate boilerPlate;
//...
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_example);
boilerPlate = new BoilerPlate(this);
}
//...
@Override
public void onRequestPermissionsResult(int requestCode, String[] permissions, String[] grantResults){
super(requestCode, permissions, grantResults);
}
}
注意: public class FragmentActivity implements OnRequestPermissionsResultCallback {
//...
@Override
public void onRequestPermissionsResult(int requestCode, String[] permissions, String[] grantResults){
}
//...
}
,public class BoilerPlate {
private MyActivity mActivity;
BoilerPlate(MyActivity activity){
this.mActivity = activity;
}
}
不在修改范围内。我只能修改FragmentActivity
和某些限制OnRequestPermissionsResultCallback
。
问题:每当触发回调时,我是否可以某种方式使用BoilerPlate
内的MyActivity
实例访问MyActivity
的参数。
P.S 我知道我可以使用params在BoilerPlate
中创建方法,并通过onRequestPermissionsResult(p1, p2, p3)
中的BoilerPlate
实例调用该方法。
分类MyActivity
boilerPlate
班级BoilerPlate
MyActivity
任何帮助将不胜感激。谢谢!
答案 0 :(得分:1)
当你调用它的超级版本时,我不明白重写方法的意义。
但无论如何:你通过添加另一个回调来解决你的问题。换句话说:你的B级持有" a"宾语。不知何故,其他代码将在#34; a"上调用abc()。宾语。
如果附上" b"对象想知道这一点,唯一的方法是:类A允许B类在创建时注册另一个回调。所以每当调用abc()时," a&#34 ;; " a"调用b.xyz()。 (xzy是B类中的回调方法)。
如果你发现这令人困惑;好吧,这完全反映了我对你的问题的感受。不过实话说;我希望这会有所帮助。