在MVP架构中,是推荐在Presenter层中进行数据获取的。但是,有时候我们需要在Presenter中获取Activity或Fragment中的变量值,这时就需要使用Getter方法来获取这些变量值,并将它们传递给Presenter。
例如,我们在Activity中定义了一个变量mUserName,现在我们需要在Presenter中获取该变量的值。我们可以在Activity中定义一个Getter方法getUserName(),用来获取mUserName的值。然后在Presenter中调用该Getter方法,就可以拿到mUserName的值了。
以下是代码示例:
Activity中定义Getter方法:
public class MainActivity extends AppCompatActivity {
private String mUserName;
//...
public String getUserName() {
return mUserName;
}
}
Presenter中使用Getter方法获取变量值:
public class MainPresenter implements MainContract.Presenter {
private MainContract.View mView;
private MainActivity mActivity;
//...
public MainPresenter(MainContract.View view, MainActivity activity) {
mView = view;
mActivity = activity;
}
@Override
public void showUserName() {
String userName = mActivity.getUserName();
mView.showUserName(userName);
}
}
在上面的代码中,MainActivity中定义了getUserName()方法,而MainPresenter中调用了该方法来获取mUserName变量的值,并使用showUserName()方法将该值传递给View层展示。