2014-09-03 44 views
0

我創建了一個名爲gm的對象,並在該活動的類中設置了一個名爲a的屬性。將當前活動傳遞給類時獲取NullPointerException

//This is in the Activity 
GameConfiguration gm = new GameConfiguration(); 
gm.setA(this); 

然後在課堂上我正在這樣做。

public class GameConfiguration { 

private Activity as; 
public TextView tx; 


public void setTextsTextViews(){ 

    Activity b = getA(); 
    tx = (TextView) b.findViewById(R.id.category); 
    tx.setText("Test"); 

    // 
} 

public Activity getA() { 
    return as; 
} 

public void setA(Activity a) { 
    this.as = a; 
} 
} 

類GameConfiguration是2個clases父母和那些2我打電話的方法setTextsTextViews,我以爲這會工作,但我在這行獲得NullPointerException錯誤

tx = (TextView) b.findViewById(R.id.category); 

我不明白的是,當我這樣做,

public void setTextsTextViews(Activity a){ 

    tx = (TextView) a.findViewById(R.id.category); 
    tx.setText("Test"); 

    // 
} 

從子類,它的工作傳遞活動,我不知道我是新來的這一切,謝謝你,如果您可以 幫助

+0

在你實際調用setTextsTextViews()之前,你確定在你的'onCreate()'方法內調用了 'setContentView()'嗎? – Anatol 2014-09-03 10:27:37

+1

只需使用調試器即可。可能是'b'或'R.id.category'都是'null'。找出哪個是'null',然後看看原因。 – Axel 2014-09-03 10:28:29

+0

是啊B是空即多數民衆贊成什麼我沒有得到,爲什麼它是空的,如果它設置它之前? – 2014-09-03 10:39:06

回答

0

您得到nullPointerException,因爲視圖包含R.id.category在這些時刻沒有顯示。將視圖而不是活動傳遞給GameConfiguration類並確保正確的佈局是膨脹的。

希望它可以幫助你!

+0

傳遞視圖工作,傳遞TextView我想改變作品完美,但我想要的是傳遞活動,所以我可以在GameConfiguration類中找到TextView並使用2子類中的方法 – 2014-09-03 10:43:26

+0

包含TextView顯示何時需要更改TextView?我遇到的問題是因爲佈局沒有膨脹。 – 2014-09-03 10:46:55

+1

好吧,我有點修補它,在活動中我創建了GameConfiguration對象我也調用了其中一個子類的方法,所以我所做的就是將該活動傳遞給該方法,並在該方法中調用setA()並在GameConfiguration類中設置活動,它的工作,我不知道你是否明白,但你幫助,所以感謝你。 – 2014-09-03 10:50:47

相關問題