2012-03-15 13 views
0

我想要使用一個對象數組,但是當我在同一個類中的其他方法中使用該數組時,數組變爲空。android在其他方法中使用的數組,但爲空

Summon[] summonArray; 

public void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.summonsmenu); 

     Summon[] summonArray = new Summon[3]; // initialize array 
     for (int i = 0; i < summonArray.length; i++) 
      summonArray[i] = new Summon(); // initialize each object in the array 
} 

public void onClick(View view) { 
     //@SuppressWarnings("unchecked") 
     switch (view.getId()) { 
     case R.id.summonButton1: 
       name.setText(summonArray[1].getName()); 
//* this is where I get the null pointer and see that the summonArray[1] is null.* 
       refresh(summonArray); 
} 

當我檢查summonArray [1]在我的onCreate方法,它擁有所有我想要的值,但是當我看着它在onclick或其他方法調試器顯示了一個空值。 休息;

回答

1

你重新聲明你的數組。

全球一個不使用,改變你的onCreate做到這一點:

this.summonArray = new Summon[3]; // initialize array 
0

你在的onCreate重新聲明summonArray()。

更改如下:

召喚[] summonArray =新召喚[3]; //初始化數組

到:

summonArray =新召喚[3]; //初始化數組

0

你已經在onCreate()中聲明瞭你的summonArray。刪除它看起來喜歡 -

public void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.summonsmenu); 

     summonArray = new Summon[3]; // initialize array 
     for (int i = 0; i < summonArray.length; i++) 
      summonArray[i] = new Summon(); // initialize each object in the array 
} 
1

通過指定類型的召喚[],要創建一個局部變量summonArray,其中隱藏的實例字段中。 summonArray = new Summon [3];使用 ;召喚[] SummonArray = new Summon [3];

相關問題