2015-11-25 56 views
-2

您好,很抱歉,我的英語技能=)顯示java.lang.NullPointerException:試圖調用虛擬方法android.view.View android.widget.TableRow.getChildAt(INT)

我編碼稍微計算一下在Android Studio中編程並遇到問題。

我做了動態創建的TableRow在TableLayout這樣的:

TableLayout table2 = (TableLayout) findViewById(R.id.table2); 
    TableRow.LayoutParams rowParams = new TableRow.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, ActionBar.LayoutParams.WRAP_CONTENT, Gravity.CENTER_HORIZONTAL); 

    TableRow row = new TableRow(this); 
    row.setLayoutParams(rowParams); 

    row.addView(floor2); 
    row.addView(ps2table); 
    row.addView(gsatable); 
    row.addView(vitable); 
    table2.addView(row); 

凡floor2,ps2table,gsatable和vitable - 是的TextView的一個按鈕按下後計算。

表創造了我嘗試使用數字中的一個(TableLayout的最後一行,並在2位小孩)後:

int gsn_count = table2.getChildCount(); 
    TableRow gsnRow = (TableRow) table2.getChildAt(gsn_count); 
    TextView tGsn = (TextView) gsnRow.getChildAt(2); 

我的問題是,當我嘗試取一個值一個或從該TableLayout任何的TableRow另一個號碼(雙),我得到這個錯誤:

java.lang.NullPointerException: Attempt to invoke virtual method 'android.view.View android.widget.TableRow.getChildAt(int)' on a null object reference

這是找我,我有地方,我指的不是一個數字,但它是那裏。我將在下面的鏈接中添加帶有評論和所有代碼的圖片。

圖片:http://i.imgur.com/huI4kba.png

代碼中,我已經有了一個錯誤的方法:http://pastebin.com/nDPnbHNR

謝謝!

+0

嘗試調試代碼到指定你的問題的下一次。我想你可以自己找到這個異常的原因。 ;) – FlanschiFox

回答

1

試試看:

int gsn_count = table2.getChildCount(); 
TableRow gsnRow = (TableRow) table2.getChildAt(gsn_count -1); 

getChildAt()得到的指數(從0開始)和getChildCount()返回子數。

所以,如果你有2項,最大指數爲1,計數爲2

+0

它完美的作品!非常感謝! =) – Shimmi

相關問題