2017-06-14 116 views
-1

我有两个活动像MainActivity和InfoActivity。 MainActivity中有EditText。我在纵向模式中将对象类的编辑框插入一些值,并将设备旋转到横向,对象不变。现在MainActivity处于横向模式,然后单击信息按钮以移动纵向的InfoActivity。当我回到MainActivity时,应用程序会崩溃。我收到以下错误:如何在从一个活动移动到另一个活动时保存设备旋转数据?

java.lang.RuntimeException: Failure delivering result ResultInfo{who=null, request=100, result=1000, data=Intent { (has extras) }} to activity: 

这是我的代码片段:

@Override 
      protected void onSaveInstanceState(Bundle outState) { 
       super.onSaveInstanceState(outState); 
       outState.putSerializable("OBJECT_CALC", calculatorModel); 
      } 

     protected void onRestoreInstanceState(Bundle savedInstanceState) { 
       super.onRestoreInstanceState(savedInstanceState); 


      calculatorModel = (CalculatorModel) savedInstanceState.getSerializable("OBJECT_CALC"); 

      mFormulaEditText.setText(df.format(mCalculatorBrain.getResult())); 
      } 

    @Override 
    protected void onActivityResult(int requestCode, int resultCode, Intent data) { 
     super.onActivityResult(requestCode, resultCode, data); 
     if(resultCode != RESULT_CANCELED) { 
      if (requestCode == SUCCESS_CODE) { 
       if (resultCode == 1000) { 

       if (isValueChanged && !mFormulaEditText.getText().toString().equals("0")) { 
        precisionSettingsUpdated(); 
       } 
      } 
     } 
} 

回答

0

你没有检查正确的结果码和请求码

protected void onActivityResult(int requestCode, int resultCode, Intent data) { 
    if(resultCode != RESULT_CANCELED){ 
     if (requestCode == YOUR_REQUEST_CODE) { 

     } 
    } 
} 
+0

不是为我工作。触发相同的崩溃。 – Philliphe

+0

您可以请更新您尝试使用的代码 – Krutik

+0

请参阅我更新的代码。我得到这个函数precisionSettingsUpdated()崩溃,因为我的对象“calculatorModel”不坚持它的状态。 – Philliphe

相关问题