我有一个带有imageView和textView的视图(Activity)。 当我点击imageView然后在textView中显示我点击图像的时间。 我使用模式MVP来解决这个任务。
结果,一切正常。好。好的。
但还有一项任务 - 在旋转屏幕后恢复视图状态。
要解决此任务,我使用下一种方法: 1.将Presenter创建为Singleton 2.我演示者我有变量
private int countClick;
在我调用presenter.clickLike()
的视图上单击ImageView时,将其递增并调用View方法
showCountOfClick()
在演示者
中public void clickLike(){ 则countclick ++; view.showCountOfClick(countClick +""); }
同样在Presenter中我有方法
@Override
public void viewIsReady() {
view.showCountOfClick(countClick + "");
}
此方法从onCreate()
方法()
在TextView
的查看设置文字中,点击次数。
public void showCountOfClick(String text){ textView.setText(文本) }
完成。
因此,当旋转屏幕时,点击次数显示正确。
并且我在View中不需要覆盖方法protected void onSaveInstanceState(Bundle outState)
,因为所有工作都在Presenter中完成。
问题: 这是一个很好的解决方案吗?
答案 0 :(得分:-1)
您的Activity
(通常)将在系统配置更改时被销毁并重新创建。因此,在单例中对它进行引用并不是一个好主意。在这种情况下我有多种解决方案:
onSaveInstanceState
,您可以将此调用转发给Presenter进行处理