我在我的应用程序中遵循MVP架构.我的HomeActivity包含一个带有列表图标的滑动面板,其中包含选择器,选择滑动面板项目时图标状态已更改,我没有使用任何列表选择器.
我保留了一个模型类NavItemData,用于填充导航抽屉,并使用扩展StateListDrawable 的类SlidingPanelItemSelector为滑动面板图标生成适当的选择器.
在MVP架构中,我们有一个演示者类,它与模型通信并生成视图的输入.在我的情况下,如果我使用演示者获取滑动面板的数据我正在调用使用Android上下文的演示者的类是一个很好的方法,或者我们有任何替代解决方案,严格遵循MVP架构?
目前我正在使用ViewBinderUtils类并将其直接注入活动类并获取Sliding Panel的数据列表.它是否遵循Mvp Architcture?
SlidingPanelItemSelector.class
public class SlidingPanelItemSelector extends StateListDrawable {
private Context mContext;
public SlidingPanelItemSelector(Context mContext){
this.mContext = mContext;
}
public StateListDrawable getHomeSelector(){
StateListDrawable stateListDrawable = new StateListDrawable();
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
stateListDrawable.addState(new int[]{android.R.attr.state_pressed},
mContext.getDrawable(R.drawable.ic_nav_home_active));
stateListDrawable.addState(new int[]{},mContext.getDrawable(R.drawable.ic_nav_home));
}else{
stateListDrawable.addState(new int[]{android.R.attr.state_pressed},
mContext.getResources().getDrawable(R.drawable.ic_nav_home_active));
stateListDrawable.addState(new int[]{},mContext.getResources().getDrawable(R.drawable.ic_nav_home));
}
return stateListDrawable;
}
}
Run Code Online (Sandbox Code Playgroud)
ViewBinderUtils.class
public class ViewDataBinderUtils {
Context mContext;
@Inject
public ViewDataBinderUtils(@ActivityContext Context mContext) {
this.mContext = mContext;
}
public …Run Code Online (Sandbox Code Playgroud) mvp android android-layout android-selector navigation-drawer