7
我正在使用砂漿和流動來驅動我的應用程序。如果我有以下觀點:推薦的方式來獲得砂漿屏幕內的活動?
public class MyView extends LinearLayout {
@Inject MyScreen.Presenter presenter;
private EditText someText;
public MyView(Context context) {
super(context);
Mortar.inject(context, this);
}
@Override protected void onFinishInflate() {
super.onFinishInflate();
presenter.takeView(this);
}
@Override protected void onDetachedFromWindow() {
super.onDetachedFromWindow();
presenter.dropView(this);
}
}
以下屏幕:
@Layout(R.layout.my_view)
public class MyScreen implements Blueprint {
@Override public String getMortarScopeName() {
return getClass().getName();
}
@Override public Object getDaggerModule() {
return new Module();
}
@dagger.Module(injects = MyView.class, addsTo = MyActivity.Module.class)
public class Module {
}
@Singleton
public class Presenter extends ViewPresenter<MyView> {
private final SomeAsyncService service;
@Inject
Presenter() { }
@Override public void onLoad(Bundle savedInstanceState) {
}
@Override public void onSave(Bundle outState) {
}
}
}
現在我想可以訪問到使用此屏幕和查看活動。我想有一些活性的方法如訪問:
getWindow()
finish()
getLayoutInflater()
getFragmentManager()
etc
我試圖蒙上了上下文這樣我的屏幕裏:當然
Activity activity = (Activity)getView.getContext;
但是,這將引發以下異常:
java.lang.ClassCastException: mortar.MortarContextWrapper cannot be cast to
android.app.Activity
如何獲得該活動?謝謝。
使用謝謝你,但我覺得這個例子中是行不通的。我試圖讓它在最近兩天工作,但它不起作用。你能否提供更多的細節? – user4386126
@ user4386126好的,我添加了一些資源。 希望你有幫助。 – eccyan
是。謝謝! – user4386126