java - 我有一张“票”,需要在整个生命周期中记住状态
问题描述
我有一个“票”,它具有名称和 UUID 等功能......它具有选择状态。跨活动记住选择。所以返回回收站视图意味着它“仍然”被选中(不,实际上不是......它是通过编码魔法重新选择的)它具有“新”和“现有”状态它可以从“新”转换为“现有”生命周期中期。(票证的生命周期,而不是活动的生命周期)
我创建了一个状态引擎,但这似乎是错误的模式。下面示例中的类的目的是解耦活动/组件。
我知道以下示例看起来不像状态引擎,这就是我问这个问题的原因,实际的状态引擎似乎不符合我的需求。
处理以下示例的推荐方法是什么:
public class TicketStateEngine {
private static int mCurrentSelectedRecyclerViewPosition = -1;
private static LinearLayoutManager mLinearLayoutManager;
private static boolean mIsNewTicket;
public static boolean isIsNewTicket() {
return mIsNewTicket;
}
public static void setIsNewTicket(boolean isNewTicket) {
mIsNewTicket = isNewTicket;
}
public static void setLinearLayoutManager(LinearLayoutManager linearLayoutManager) {
mLinearLayoutManager = linearLayoutManager;
}
public static int getCurrentSelectedRecyclerViewPosition() {
return mCurrentSelectedRecyclerViewPosition;
}
public static void setCurrentSelectedRecyclerViewPosition(int currentSelectedRecyclerViewPosition) {
mCurrentSelectedRecyclerViewPosition = currentSelectedRecyclerViewPosition;
}
public static void scrollToSelected() {
try {
mLinearLayoutManager.scrollToPositionWithOffset(mCurrentSelectedRecyclerViewPosition, 0);
} catch (NullPointerException e) {
Log.e("NullPointerException", "Make sure a Linear Layout manger is set for TicketStateEngine");
throw e;
}
}
}
解决方案
推荐阅读
- c# - 无法获取托管类型的地址、大小或声明指针
- google-sheets - 谷歌表格公式计算另一张表格中多列的值总和
- mysql - MYSQL 更新何时可见?
- flutter - Navigation.of(context) 不去另一条路线
- maven - Maven:子模块不能继承父模块的依赖
- sql-update - 如果列 id 相同,我正在尝试编写一个脚本来更新列值,如果它们为空,则使用增量值
- python - 为什么 PyArg_ParseTuple 总是返回 false?
- docker - 为什么我收到错误“docker:来自守护进程的错误响应:仅用户定义的网络支持用户指定的 IP 地址。”?
- sas - ODS 标签集 RTF
- c++ - 鼠标不动时 SDL2“跳过”帧