2014-05-13 119 views
0

我的代碼添加一個觀點是:addView不工作

LL = (LinearLayout) findViewById(R.id.LL); 
LL.removeAllViewsInLayout(); //Works fine, is necessary for a separate reason 
tx = new TextView(this); 
tx.setLayoutParams(new LinearLayout.LayoutParams(LinearLayout.LayoutParams.WRAP_CONTENT, LinearLayout.LayoutParams.WRAP_CONTENT)); 
LL.addView(tx); //Program fails 

程序停止在addView功能。

+2

我們可以有堆棧跟蹤嗎? –

+2

如果tx是一個TextView,你爲什麼試圖通過索引訪問? – ashishduh

+0

@ashishduh這是一個複製錯誤,糾正它。 –

回答

1

我發現我的錯誤。我通過一個AsyncTask類(由一個偵聽器)調用上述MainActivity函數,而不是調用我在doInBackground結尾調用的OnPostExecute。

+1

是的,添加一個佈局必須在UI線程上完成,所以OnPostExecute就是你想要的地方。將來,如果您包含更大的代碼片段和/或錯誤日誌/堆棧跟蹤,我們將能夠提供更好的幫助。 – Matt

1

「tx」不是數組,因此您無法訪問tx [i]。你想要LL.addView(tx);

+0

這是由於複製錯誤,我現在糾正它。 –

+0

提供堆棧跟蹤以獲取更多幫助。 – Matt