2010-12-06 95 views
2

我寫一個Android應用程序,我需要通過兩個類之間的字符串數組之間的字符串數組。該字符串初始化很好,我可以在一個類中輸出字符串的內容,但是當我嘗試將它傳遞給另一個類時,我得到一個空指針異常錯誤。以下是我的代碼的精簡版本:傳遞Java類Android應用程序

accelerometer.java:

public class accelerometer extends Service { 

public String movement[]; 

public void onCreate() { 

    movement = new String[1000000]; 

} 

public void updatearray() { 
    movement[arraypos]=getCurrentTimeString(); 
    //Toast.makeText(this, movement[arraypos] , Toast.LENGTH_SHORT).show(); //this correctly displays each position in the array every time it updates so I know the array is working correctly in this file 
    arraypos+=1; 
} 

public String[] getmovement(){ 
    return movement; 
} 
    } 

wakeupalarm.java:

public class wakeupalarm extends Activity { 

private TextView herestext_; 

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

    herestext_ = (TextView) findViewById(R.id.TextView01); 

    accelerometer accelerometercall = new accelerometer(); 

    String movearray[] = accelerometercall.getmovement(); 

    herestext_.setText(movearray[2]); 
    } 

    } 

我有一種感覺,我失去了一些東西很簡單,但任何幫助將不勝感激!

感謝,

斯科特

回答

1

你正在創建一個新的加速計類,這是完全未初始化,因爲沒有構造,那麼你訪問它的成員。當然它會是空的。

不知道你的兩個類是如何關聯的,但如果該活動是由服務調用,那麼您需要通過意圖傳遞字符串(通過一個額外的,例如)。

邊注:類名應該總是以大寫字母開頭。方法/變量名應該有駱駝大小寫,即「updateArray」。另外,你可以通過選擇它並按下CTRL + K來設置你的代碼的格式。

+0

我是個白癡。謝謝您的幫助。 – Scott 2010-12-06 03:53:55

0

你的第一個問題,我想,是要創建在一百萬插槽數組。你真的想這麼做嗎?這將需要大量的內存 - 可能比可用的更多。你應該看看有一個字符串矢量,你可以根據需要進行擴展。

+0

我懷疑百萬槽數組引起`NullPointerException`被拋出。如果OP的內存不足,你會看到一個`OutOfMemoryException`或類似的東西。雖然,我確實認爲這可能是一個不必要的大陣列。 – Asaph 2010-12-06 03:47:09

相關問題