2013-08-21 66 views
0

我有一個幾乎已經完成的應用程序,但是我在主類中有幾個方法,所以它看起來非常untidly/large。Android,訪問類之間的方法

我想將這些方法分成單獨的類,但儘管我嘗試了這種方法,我仍然不斷地得到空指針錯誤。

即使在另一個類中創建一個字符串並試圖獲取另一個類中的字符串,我也會得到空結果。

我在這裏做了一個搜索,但沒有真正回答我的問題,我將不勝感激一些幫助。

編輯:這裏是一些示例代碼:

public class Test2 extends mainClass{ 
public ArrayList<ExtendedOverlayItem> somethingz = new ArrayList<ExtendedOverlayItem>(); 
public void addSomething() { 
    ExtendedOverlayItem poi = new ExtendedOverlayItem(
      "description", "description", new GeoPoint(88.123058, 
        -10.987654), null); 
    poi.setMarkerHotspot(OverlayItem.HotspotPlace.CENTER); 
    poi.setDescription("test"); 
    somethingz.add(poi); 

    ItemizedOverlayWithBubble<ExtendedOverlayItem> node = new ItemizedOverlayWithBubble<ExtendedOverlayItem>(
      this, somethingz, map); 
    map.getOverlays().add(node); 

} 
public ArrayList<ExtendedOverlayItem> getSomethingz() { 
    return somethingz; 
} 
public Test2(ArrayList<ExtendedOverlayItem> somesthingz) { 
    super(); 
    this.somesthingz =somesthingz; 

} 
public void setSomethingz(ArrayList<ExtendedOverlayItem> somesthingz) { 
    this.somesthingz = somesthingz; 
} 

} 

然後在我的主類我只是添加

Test2的測試; 然後調用方法:test.addSomething();

我很可能錯過了一些微不足道的東西,但我甚至試過用test2類中的一個字符串嘗試從主類打印出來,但它會產生空指針。

謝謝。

+2

你如何訪問其他課程的領域?他們是靜態還是實例字段?你是否正確地實例化對象?注意範圍。 –

+0

你可以發表一個你正在嘗試做的例子嗎?這可能會讓問題更容易提出建議。 – dudebrobro

+0

你應該發佈相關的代碼和一些LogCat文獻,否則沒有人能夠回答你,你的問題將被關閉。 – Mena

回答

0

它聽起來像你也許試圖做到這一點:

Test2 test; 
test.addSomething(); 

如果是這樣,那麼你需要實例化對象,像這樣:

ArrayList<ExtendedOverlayItem> itemList = new ArrayList<ExtendedOverlayItem>(); 
Test2 test = new Test2(itemList); 
test.addSomething(); 

一些不同的看看在那裏熟悉語言。

+0

如果是這樣的話,我該如何完成這一行:Test2 test = new Test2();因爲我不得不使用Test2的構造函數:public Test2(ArrayList somethingz){ – user2704807

+0

我更新了答案。請閱讀Java語言教程。 – kurtzmarc

+0

好吧,我現在已經完成了所有這些工作,但還有其他一些問題需要研究,謝謝。 – user2704807