Android 在MVP项目中正确使用onActivityResult
我尝试在我的项目中使用MVP,但我遇到了一些问题 比如我有Android 在MVP项目中正确使用onActivityResult,android,onactivityresult,android-mvp,Android,Onactivityresult,Android Mvp,我尝试在我的项目中使用MVP,但我遇到了一些问题 比如我有 MyPresenter presenter; MyFragment view; 在视图中,我有名为“open barcode scan”(打开条形码扫描)的按钮,它是如下所示的打开条形码扫描活动: IntentIntegrator.forSupportFragment(this).initiateScan() 为什么必须校准此代码查看或演示者 1视图实现: scanButton.setOnClickListener(view -&g
MyPresenter presenter;
MyFragment view;
在视图中,我有名为“open barcode scan”(打开条形码扫描)的按钮,它是如下所示的打开条形码扫描活动:
IntentIntegrator.forSupportFragment(this).initiateScan()
为什么必须校准此代码<代码>查看
或演示者
1视图实现:
scanButton.setOnClickListener(view -> IntentIntegrator.forSupportFragment(this).initiateScan());
scanButton.setOnClickListener(view -> presenter.openScan());
2演示者实现:
scanButton.setOnClickListener(view -> IntentIntegrator.forSupportFragment(this).initiateScan());
scanButton.setOnClickListener(view -> presenter.openScan());
下一个问题-如何处理ActivityResult的?怎么做
比如说
@Override
public void onActivityResult(int requestCode, int resultCode, Intent data) {
switch(requestCode){
case
...
case
...
case
//it is logic
}
编辑
单向
双向
演示者
充当视图
和模型
之间的桥梁或中间人,因此必须在视图上调用它
onActivityResult
将与片段上的内容相同。然后,如果需要保存扫描结果,则需要调用演示者
演示者通常承载与特定功能关联的业务逻辑,相应的视图处理Android UI工作。这个观点几乎没有逻辑;它将演示者的命令转换为UI操作,并侦听用户操作,然后将这些操作传递给演示者
参考:
您可能会弄错,onActivityResult
是业务逻辑所在的位置,不是。这就是为什么当您得到结果时需要将其传递给演示者的原因,这样演示者将处理(业务逻辑)它,然后将其交给您的存储库保存它。是的,我也会这样做。问题还在于从onActivityResult向演示者传输什么内容?若我传递3个参数int-requestCode、int-resultCode,那个么意图数据展示者将了解意图类(android.content),但我认为展示者不必了解android框架类。如果我以片段的形式处理数据,这意味着我实现了逻辑。处理请求代码,结果代码不算作逻辑,因为您只需要获取实际数据并将其传递给演示者。onActivityResult中的代码是一种好方法吗?字符串[]cardData=result.getContents().split(“”);makePay(cardData,basketAdapter.getData());我想你应该传递结果。getContents()
,然后在演示者上拆分它。
@ip696我想知道你最后对onActivityResult()的问题做了什么?