2017-01-13 1 views
-2

Ich überschreibe onResume-Methode, um den vorherigen Status meiner Aktivität zu laden, zB das letzte ausgewählte Element des Spinner usw. Derselbe Code funktioniert jedoch für einige Aktivitäten gut, aber für einige führt er zum Absturz, wenn i entferne diese onResume von ihnen, Aktivität stürzt nicht ab.Die onResume-Methode bewirkt, dass die Aktivität zum Absturz kommt

Hier ist der Code

@Override 
    protected void onResume() { 
     super.onResume(); 

     sp1 = (Spinner)findViewById(R.id.spinner); 
     sp2=(Spinner)findViewById(R.id.spinner1); 
     sp3=(Spinner)findViewById(R.id.spinner2); 
     sp4=(Spinner)findViewById(R.id.spinner3); 
     sp5=(Spinner)findViewById(R.id.spinner4); 

TextView tx=(TextView)findViewById(R.id.upgradeResult) ; 
     SharedPreferences prefs = getSharedPreferences("restore_defensiveBuildings_state", Context.MODE_PRIVATE); 
     int spinner1Indx = prefs.getInt("spinner1_indx", 0); 
     int spinner2Indx = prefs.getInt("spinner2_indx", 0); 
     int spinner3Indx = prefs.getInt("spinner3_indx", 0); 
     int spinner4Indx = prefs.getInt("spinner4_indx", 0); 
     int spinner5Indx = prefs.getInt("spinner5_indx", 0); 


     sp1.setSelection(spinner1Indx); 
     sp2.setSelection(spinner2Indx); 
     sp3.setSelection(spinner3Indx); 
     sp4.setSelection(spinner4Indx); 
     sp5.setSelection(spinner5Indx); 


     tx.setText(""+totalAirBombUpgradeCost); 
    } 

Dies ist, wie ich Elemente an den Adapter

 Spinner sp1; 
     Spinner sp2; 
     Spinner sp3; 
     Spinner sp4; 
     Spinner sp5; 

     TextView tx; 
     Button sbmt; 
    String levels[]={"Level 1", 
      "Level 2", 
      "Level 3", 
      "Level 4" 

      }; 

     int[] images={R.drawable.giant_bomb_1and2, 
       R.drawable.giant_bomb_1and2 , 
       R.drawable.giant_bomb_3and4, 
       R.drawable.giant_bomb_3and4 


       }; 

@Override 
     protected void onCreate(@Nullable Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_giant_bomb); 


//// initialize all your visual fields 
//   if (savedInstanceState != null) { 
//    sp1.setSelection(savedInstanceState.getInt("MySpinner1", 0)); 
//    // do this for each of your text views 
//   } 



sbmt=(Button)findViewById(R.id.submit); 
tx=(TextView)findViewById(R.id.upgradeResult); 
     sp1=(Spinner)findViewById(spinner); 
     sp2=(Spinner)findViewById(R.id.spinner1); 
      sp3=(Spinner)findViewById(R.id.spinner2); 
      sp4=(Spinner)findViewById(R.id.spinner3); 
      sp5=(Spinner)findViewById(R.id.spinner4); 


     SpinnerAdapterGiant adapter=new SpinnerAdapterGiant(this,levels,images); 



      sp1.setAdapter(adapter); 

     sp2.setAdapter(adapter); 
      sp3.setAdapter(adapter); 
      sp4.setAdapter(adapter); 
      sp5.setAdapter(adapter); 

Und das ist der Fehler

java.lang.ArrayIndexOutOfBoundsException: length=4; index=4 

EDIT geladen: Wenn ich entfernen onResume() , alles funktioniert gut App stürzt nicht ab, nur dass es den vorherigen Zustand der Aktivität nicht lädt.

+0

erhöhen, weil Sie nur 4 Elemente in deiner Liste. Array beginnt immer von 0. in Ihrem Fall Array-Elemente können Sie Ass 0 bis 3. 4th Index ist nicht in Ihrem Array –

+1

Mögliche Duplikat von [Was verursacht eine java.lang.ArrayIndexOutOfBoundsException und wie verhindere ich es?] (Http: //stackoverflow.com/questions/5554734/what-causes-a-java-lang-arrayindexoutofboundexception-and-how-do-i-prevent-it) – Selvin

+0

Ich füge 4 Elemente zu jedem Spinner hinzu @SaurabhBhandari –

Antwort

0

Da in Array Sie nur 4 Wert und dort 5 Spinner so im fünften Spinner Fehler auftreten.

+0

Ich füge 4 Elemente zu jedem der 5 Spinner, überprüfen Sie die Bearbeitung, wie ich meinen Adapter initialisiert. –

0

Sie versuchen, das fünfte Element in einem Array der Größe 4. Ihre Ebenen und Bilder Array nur für das Element haben zugreifen, aber Sie haben 5 Spinnern Ihre Array-Größe bis 5.

+0

Ich füge 4 Elemente zu jedem der 5 Spinner, überprüfen Sie die Bearbeitung, wie ich meinen Adapter initialisiert. –

Verwandte Themen