要解决“Android Dagger 2与MVP”的问题,您可以按照以下步骤进行操作:
implementation 'com.google.dagger:dagger:2.x'
annotationProcessor 'com.google.dagger:dagger-compiler:2.x'
@Module
public class NetworkModule {
@Provides
public ApiService provideApiService() {
return new ApiService();
}
}
@Component(modules = {NetworkModule.class})
public interface NetworkComponent {
void inject(MainActivity activity);
}
public class MyApplication extends Application {
private NetworkComponent networkComponent;
@Override
public void onCreate() {
super.onCreate();
networkComponent = DaggerNetworkComponent.builder()
.networkModule(new NetworkModule())
.build();
}
public NetworkComponent getNetworkComponent() {
return networkComponent;
}
}
public class MainActivity extends AppCompatActivity implements MainContract.View {
@Inject
ApiService apiService;
private MainPresenter presenter;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
// 注入依赖项
((MyApplication) getApplication()).getNetworkComponent().inject(this);
// 创建Presenter实例
presenter = new MainPresenter(this, apiService);
// 执行Presenter的方法
presenter.loadData();
}
// 实现View接口的方法
@Override
public void showData(String data) {
// 在UI上显示数据
TextView textView = findViewById(R.id.text_view);
textView.setText(data);
}
}
这就是使用Dagger 2与MVP的基本示例。您可以根据自己的需求进行修改和扩展。请注意,这只是一个简单的示例,并不涵盖所有可能的用例。您可以在Dagger 2的官方文档中找到更多信息和示例代码来深入了解。