我只是一个简单的问题。
我在Android上正在研究我的项目,当我在我的三星s5 mini上尝试它时,没有任何错误。结果发送回我的第一项活动。
但是当我尝试在我的旧星系s2上运行我的项目时,我正面临着这个错误
java.lang.RuntimeException: Unable to resume activity
Caused by: java.lang.RuntimeException: Failure delivering result
ResultInfo{who=null, request=1, result=-1, data=Intent {
cmp=com.pullups.thomas.pullup/.Workout (has extras) }} to activity
{com.pullups.thomas.pullup/com.pullups.thomas.pullup.Workout}:
java.lang.NumberFormatException: Invalid int: ""
有人可以告诉我为什么它与我的galaxy s5 mini完美配合,但不能与我的Galaxy s2配合使用。
s5 mini在4.4.2上运行 galaxy s2在4.2.2上运行
答案 0 :(得分:0)
这是我的第二个活动的代码(发送结果的人)我得到额外的,当用户点击按钮时我向compteurTimer添加+1并将其发送回第一个活动,所以它&#39 ; s显然不是空int,因为至少1是默认值
Intent intent = getIntent();
compteurTimer = intent.getExtras().getInt("compteurEntrainement",1);
btn_passer.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
Intent workout = new Intent(CountDown.this, Workout.class);
MyCount_DownTimer.cancel();
compteurTimer++;
workout.putExtra("compteurTimer", compteurTimer);
setResult(RESULT_OK, workout);
finish();
}
});
然后在第一个Activity中,我获得了onActivity结果代码
@Override
protected void onActivityResult(int requestCode,int resultCode, Intent data){
super.onActivityResult(requestCode, resultCode, data);
if (requestCode == 1 && resultCode == RESULT_OK && data != null ) {
compteurEntrainement = data.getIntExtra("compteurTimer", 1);
switch (compteurEntrainement){
case 2:
backColorDisplay(viewSerie2, viewSerie1, tabOfSeries[1]);
break;
case 3:
backColorDisplay(viewSerie3, viewSerie2,tabOfSeries[2]);
break;
case 4:
backColorDisplay(viewSerie4, viewSerie3,tabOfSeries[3]);
break;
case 5:
backColorDisplay(viewSerie5, viewSerie4,tabOfSeries[4]);
btnComplet.setText("TERMINÉ");
btnComplet.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
final Intent pre_workout = new Intent(Workout.this, Pre_Workout.class);
setResult(RESULT_OK, pre_workout);
finish();
}//onClick
});
break;
default:
viewSerieEnCours.setText(viewSerie1.getText().toString());
break;
}//switch
}//if
}//onActivityResult
我问的问题是,为什么这个代码在我的s5 mini上没有错误但在我的galaxy s2上无效。
现在我已将此添加到我的第一个活动
@Override
public void onSaveInstanceState(Bundle savedInstanceState) {
// Always call the superclass so it can save the view hierarchy state
super.onSaveInstanceState(savedInstanceState);
}
在此之后,我没有出现任何错误,但是compteurTimer没有自行增加,所以我被困了
答案 1 :(得分:0)
一些提示:
您可以对结果Intent
使用参数较少的构造函数:
Intent data = new Intent(); ///数据..... setResult(Activity.RESULT_OK,data); 光洁度();
无需明确设置要用作投放的活动。
另外请确保您没有在其他地方调用完成,例如MyCount_DownTimer
。
确保排成一行:workout.putExtra("compteurTimer", compteurTimer);
,compteurTimer
实际上属于int
类型。