我對Android相對比較陌生,完全停留在如何在我的自定義視圖中訪問編程定義的相對佈局(在片段中定義)中。從自定義視圖中訪問RelativeLayout時出現NullPointerException
在片段,這是我有:
...
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
View view = inflater.inflate(R.layout.fragment1, container,false);
RelativeLayout rl1 = new RelativeLayout(view.getContext());
TextView tView1 = new TextView(view.getContext());
tView1.setText("test");
rl1.addView(tView1);
rl1.setId(1);
tView1.setId(2);
...
}
然後在自定義視圖我呼籲通過ID相對佈局和TextView的。當我嘗試做任何事情時,我得到一個NullPointer異常。
...
RelativeLayout rl1 = (RelativeLayout) findViewById(1);
TextView tView1 = (TextView) findViewById(2);
tView1.getText();
上面的代碼顯示試圖.getText()
在TextView的,但任何事情我做對的RelativeLayout也導致空指針異常。
所以基本上,它看起來像我沒有找到正確的RelativeLayout和TextViews。 僅供參考,我已經看到this similar question,但它不適用於此,我的構造函數已經正確設置。
好吧,我已經添加了更多的代碼。你能給我特定的命令/文件類型來添加它嗎?是否像'view.addView(rl1)'?或者我將它添加到Fragment1的.xml文件中? – lynvie 2013-02-16 19:34:31
請參閱下面的答案。如果你想保持這種動態,除了片段佈局的初始膨脹之外,xml並不真正涉及。正如我寫的,你需要投入到一個佈局,因爲'ViewView()'類未定義'addView()'。 – 2013-02-16 19:36:54