轉載:http://blog.csdn.net/xiabing082/article/details/48781489
1. 大家常常自定義view,,然后在xml 中添加該view 組件。。如果在Activity 中使用findByViewId 方法獲取該view 時候,返回對象總為空 。。。
xml 代碼
java代碼
View rootView = View.inflate(this, R.layout.frag_shandina, null); setContentView(rootView); setContentView(rootView); view = (CustomSurfaceView)findViewById(R.id.customsufaceview); LogUtils.i("blueberry", "view="+view);
其實問題還是出現在,,,自定義view 中,構造方法。。
解決方法:
錯誤寫法:
public CustomSurfaceView(Context context, AttributeSet attrs) { super(context);
正確寫法:
public CustomSurfaceView(Context context, AttributeSet attrs) { //注意這里容易引起空指針異常的。。。。。 super(context,attrs);
這種初始化對象,會調用這個構造方法,,因為調用父類的構造函數沒有傳入AttributeSet ,
或者
CustomSurfaceView view = new CustomSurfaceView(this, null); setContentView(view );
這種方式添加進行初始化。。