我正在使用MVP架构来构建我的应用程序。我的演示者调用了一个DataManager,它负责从网络或数据库中获取数据。当我使用RxJava时,我在Presenter中订阅了Observers并将适当的状态传递给UI。我的服务层具有Android上下文,它还将创建我自己的类型的Exception,该异常也引用了Context。
if (isNetworkConnected()) {
final Call<ServiceResponse<AppVersion>> call = mService.getAppVersion();
try {
final Response<ServiceResponse<AppVersion>> response = call.execute();
if (response.isSuccessful()) {
final ServiceResponse<AppVersion> serviceResponse = response.body(); response.body();
if (serviceResponse.isSuccess()) {
subscriber.onNext(serviceResponse.getData());
} else {
subscriber.onError(new CustomException(mContext, response.code(), response.message(), serviceResponse.getErrorList()));
}
} else {
subscriber.onError(new CustomException(mContext, response.code(), response.message(), response.errorBody().string()));
}
} catch (IOException e) {
e.printStackTrace();
subscriber.onError(e);
} finally {
subscriber.onCompleted();
}
} else {
subscriber.onError(new NoInternetException());
}
Run Code Online (Sandbox Code Playgroud)
我的CustomException也将崩溃记录在Crashlytics中。当我对该代码进行单元测试时,我从Crashlytics获取了一个未初始化的异常。因此,我需要模拟logExceptionCrashlytics 的静态方法。但是由于演示者不接受该对象,我应该如何传递此模拟对象?
public staticErrorType getErrorType(Throwable throwable) {
//409: Not handled as its a …Run Code Online (Sandbox Code Playgroud) 我需要按需注入我的一个类的实例的字段,即在运行时,因为我正在即时实例化它们。
我曾经为此使用 Guice 来调用MembersInjector#injectMembers或Injector#injectMembers。我怎么能在 Dagger 2 中有这样的东西?
我正在使用 MPAndroidChart 库,我创建了一个简单的图表示例:

我想更改为值 X 的位置:
public class MainActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_chart);
BarChart chart = (BarChart) findViewById(R.id.chart);
BarData data = new BarData(getXAxisValues(), getDataSet());
chart.setData(data);
chart.setDescription("My Chart");
chart.animateXY(0, 5000);
chart.invalidate();
}
private ArrayList<BarDataSet> getDataSet() {
ArrayList<BarDataSet> dataSets = null;
ArrayList<BarEntry> valueSet1 = new ArrayList<>();
BarEntry v1e1 = new BarEntry(98.000f, 0); // Jan
valueSet1.add(v1e1);
BarEntry v1e2 = new BarEntry(95.000f, 1); // Feb
valueSet1.add(v1e2);
BarEntry v1e3 = new BarEntry(102.000f, 2); // Mar
valueSet1.add(v1e3);
BarEntry v1e4 …Run Code Online (Sandbox Code Playgroud) 我创建了一个LineChart使用库 MPAndroidChart 并且一切正常。
现在我想要做的是为图表上的每个条目显示一个可绘制的(图像)而不是默认的圆圈。
我从 API 中尝试了很多选项,但没有运气。
谁能告诉我我该怎么做?
我送一个startActivityForResult从ActivityA到ActivityB
private Uri saveFileToDrive() {
Intent saveToDriveInten = new Intent(this, GoogleDriveProxeyActivity.class);
saveToDriveInten.putExtra("fileUri", mCurrentImageUri.toString());
startActivityForResult(saveToDriveInten, SAVE_TO_DRIVE);
return null;
}
Run Code Online (Sandbox Code Playgroud)
在ActivityB我看来:
Intent resultIntent = new Intent();
resultIntent.putExtra("driveUri", file.getAlternateLink());
setResult(Activity.RESULT_OK, resultIntent);
Run Code Online (Sandbox Code Playgroud)
为什么我不回来onActivityResult了ActivityA?
实际上我不确定之后执行了什么代码
setResult(Activity.RESULT_OK, resultIntent);
我以为我不见了finish()但是这把我扔给了另一个家长活动.
android ×5
java ×2
linechart ×2
charts ×1
crashlytics ×1
dagger-2 ×1
mocking ×1
unit-testing ×1